De acuerdo con el estándar de C++ 11 un constructor por defecto medida sólo se genera si:explícitamente incumplido movimiento constructor
- X no tiene un constructor de copia-declarada de usuario y
- X no tiene una -declarada de usuario operador de asignación de copia,
- X no tiene un operador de asignación de mudanza declarada usuario,
- X no tiene un destructor-declarada de usuario y
- el constructor medida podría no ser definido implícitamente como eliminado
¿Puedo seguir explícitamente predeterminado? Parece que funciona correctamente en clang. Así por ejemplo:
class MyClass {
private:
std::vector<int> ints;
public:
MyClass(MyClass const& other) : ints(other.ints) {}
MyClass(MyClass&& other) = default;
};