Namespaces
Variants

C++ named requirements: MoveAssignable (since C++11)

From cppreference.net
C++ named requirements

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é

  • t , une expression lvalue modifiable de type T ,
  • rv , une expression rvalue de type T .

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 rv n'est pas spécifiée.

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

vérifie si un type possède un opérateur d'affectation par déplacement
(modèle de classe)
spécifie qu'un type peut être affecté à partir d'un autre type
(concept)