title: Call to implicitly deleted copy constructor
body: <p>I have the following setup:</p>
  
  <pre><code>class MyClass {
   public:
    static MyClass Clone(const MyClass&amp; other) { 
      return MyClass(other, 10);
    }
  
    static MyClass CreateNormal(int x, int y) {
      return MyClass(int x, int y);
    }
  
    // There are a few more factory functions.
  
   private:
    // Constructor 1
    MyClass(int x, int y) : b_(x, y) {}
  
    // Constructor 2
    MyClass(const MyClass&amp; other, int c) : b_(other.b_, c) {}
  
    // And a lot more constructors.
  
  
    // NotMyClass has its copy constructor deleted.
    NotMyClass b_;
  }
  
  int main() {
    MyClass A(1,2);
  
    MyClass B = MyClass::Clone(A); // ERROR
  }
  </code></pre>
  
  <p>Is there a way to get around this without modifying <code>NotMyClass</code>?
  The error happens because the copy constructor of <code>MyClass</code> is implicitly deleted. Is there a way I can use std::Move() to solve this? </p>
  
  <p>I cannot remove the factory functions as the actual class has many constructors and the factory functions are needed for clarity and understanding.</p>