Explizit vorgegebener Verschiebungskonstruktor
Gemäß dem c ++ 11-Standard wird ein Standard-Verschiebungskonstruktor nur generiert, wenn:
X hat keinen vom Benutzer deklarierten Kopierkonstruktor undX hat keinen vom Benutzer deklarierten Kopierzuweisungsoperator.X hat keinen vom Benutzer deklarierten Operator für die Zuweisung von Verschiebungen.X hat keinen vom Benutzer deklarierten Destruktor undDer Verschiebungskonstruktor würde nicht implizit als gelöscht definiert.Kann ich es trotzdem explizit als Standard festlegen? Scheint richtig zu klingen. So zum Beispiel:
class MyClass {
private:
std::vector<int> ints;
public:
MyClass(MyClass const& other) : ints(other.ints) {}
MyClass(MyClass&& other) = default;
};