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;
};

Antworten auf die Frage(2)

Ihre Antwort auf die Frage