Я искал в Интернете и нашел 3 способа определения конструктора перемещения:
-
Опираясь на компилятор:
T(T&& other) = default;
-
Указатель разворота
this
:T(T&& other) { *this = std::move(other); }
-
Явно переназначить всех участников:
T(T&& other) { T.a = other.a; T.b = other.b; //... }
Какой из них правильный? (И второй даже правильный?)