Welche Regeln gelten für die automatische Generierung von Verschiebevorgängen?

In C ++ 98 könnte der C ++ - Compilerautomatisch Erzeugen eines Kopierkonstruktors und eines Kopierzuweisungsoperators über eine mitgliedsmäßige Kopie, z.

struct X {
    std::string s;
    std::vector<int> v;
    int n;
};

Der Compilerautomatisch generiert Kopierkonstruktor und Kopierzuweisungsoperator fürX, mit mitgliederseitiger Kopie.

Aber wie ändern sich die Dinge in C ++ 11 mit der Verschiebungssemantik?

Sind dieBewegung Konstrukteur undBewegung Aufgabenverwalter automatisch wie Kopierkonstruktoren und Kopierzuweisungsoperatoren erzeugt?

Gibt es Fälle, in denen Verschiebeoperationen sind,nicht automatisch erzeugt?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage