Nach dem C++ 11 Standard ein Standard-Bewegung Konstruktor wird nur dann erzeugt, wenn:Explizit vorbelegt bewegt Konstruktor
- X nicht über einen benutzer erklärte Copykonstruktor und
- X hat keine Benutzer erklärt Kopie Zuweisungsoperator,
- X keinen Benutzer deklarierte Bewegung Zuweisungsoperator hat,
- X nicht ein benutzer erklärt destructor hat, und
- der Umzug Konstruktor nicht implizit definiert werden würde wie gelöscht.
Kann ich es immer noch explizit voreinstellen? Scheint korrekt zu funktionieren. Wie dies zum Beispiel:
class MyClass {
private:
std::vector<int> ints;
public:
MyClass(MyClass const& other) : ints(other.ints) {}
MyClass(MyClass&& other) = default;
};