Według standardu C++ 11 konstruktor domyślny ruch jest generowany tylko wtedy, gdy:Jawnie domyślnie konstruktor ruch
- X nie posiada konstruktor kopiujący użytkownika zadeklarowane i
- X nie mają zadeklarowane przez użytkownika operator przypisania kopiowanie,
- X nie posiada operator przypisania ruch użytkownika oświadczył
- X nie posiada destruktor użytkownika zadeklarowane i
- konstruktor posunięcie nie może być określona w sposób dorozumiany jako usunięte.
Czy mogę nadal domyślnie go ustawić? Wydaje się działać poprawnie w klang. Jak to na przykład:
class MyClass {
private:
std::vector<int> ints;
public:
MyClass(MyClass const& other) : ints(other.ints) {}
MyClass(MyClass&& other) = default;
};