C++ named requirements: MoveAssignable (since C++11)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Spécifie qu'une instance du type peut être assignée à partir d'un rvalue argument.
Exigences
Le type
T
satisfait
MoveAssignable
si
Étant donné
Les expressions suivantes doivent être valides et avoir leurs effets spécifiés.
| Expression | Return type | Return value | Post-conditions |
|---|---|---|---|
| t = rv |
T&
|
t
|
Si
t
et
rv
ne font pas référence au même objet, la valeur de
t
est équivalente à la valeur de
rv
avant l'affectation.
La nouvelle valeur de
|
Notes
Le type n'a pas besoin d'implémenter un
move assignment operator
pour satisfaire cette exigence de type : un
copy assignment operator
qui prend son paramètre par valeur ou comme
const Type&
, se liera à un argument rvalue.
Si une classe
MoveAssignable
implémente un opérateur d'affectation par déplacement, elle peut également implémenter la
sémantique de déplacement
pour tirer parti du fait que la valeur de
rv
après l'affectation n'est pas spécifiée.
Voir aussi
|
(C++11)
(C++11)
(C++11)
|
vérifie si un type possède un opérateur d'affectation par déplacement
(modèle de classe) |
|
(C++20)
|
spécifie qu'un type peut être affecté à partir d'un autre type
(concept) |