C++ benannte Anforderungen: MoveAssignable (seit C++11)
Von cppreference.com
< cpp | benannte req
Gibt an, dass eine Instanz des Typs von einem Rvalue-Argument zugewiesen werden kann.
[edit] Anforderungen
Der Typ T erfüllt MoveAssignable, wenn
Gegeben
-
t, ein modifizierbarer lvalue Ausdruck vom TypT, -
rv, ein Rvalue-Ausdruck vom TypT.
Die folgenden Ausdrücke müssen gültig sein und ihre angegebenen Effekte haben.
| Ausdruck | Rückgabetyp | Rückgabewert | Nachbedingungen |
|---|---|---|---|
| t = rv | T&
|
t
|
Wenn t und rv nicht auf dasselbe Objekt verweisen, ist der Wert von t äquivalent dem Wert von rv vor der Zuweisung.Der neue Wert von |
[edit] Hinweise
Der Typ muss keinen Move-Zuweisungsoperator implementieren, um diese Typanforderung zu erfüllen: Ein Kopierzuweisungsoperator, der seinen Parameter per Wert oder als const Type& annimmt, bindet an Rvalue-Argumente.
Wenn eine MoveAssignable-Klasse einen Move-Zuweisungsoperator implementiert, kann sie auch Move-Semantik implementieren, um die Tatsache auszunutzen, dass der Wert von rv nach der Zuweisung nicht spezifiziert ist.
[edit] Siehe auch
| (C++11)(C++11)(C++11) |
prüft, ob ein Typ einen Verschiebezuweisungsoperator hat (Klassenvorlage) |
| (C++20) |
gibt an, dass ein Typ von einem anderen Typ zuweisbar ist (Konzept) |