Constructor de movimiento por defecto explícito
De acuerdo con el estándar c ++ 11, un constructor de movimiento predeterminado solo se genera si:
X no tiene un constructor de copia declarado por el usuario, yX no tiene un operador de asignación de copia declarado por el usuario,X no tiene un operador de asignación de movimiento declarado por el usuario,X no tiene un destructor declarado por el usuario, yel constructor de movimiento no se definiría implícitamente como eliminado.¿Todavía puedo explícitamente por defecto? Parece funcionar correctamente en clang. Como este por ejemplo:
class MyClass {
private:
std::vector<int> ints;
public:
MyClass(MyClass const& other) : ints(other.ints) {}
MyClass(MyClass&& other) = default;
};