C++ named requirements: MoveAssignable (since C++11)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Especifica que una instancia del tipo puede ser asignada desde un rvalue argumento.
Requisitos
El tipo
T
satisface
MoveAssignable
si
Dado
Las siguientes expresiones deben ser válidas y tener sus efectos especificados.
| Expresión | Tipo de retorno | Valor de retorno | Condiciones posteriores |
|---|---|---|---|
| t = rv |
T&
|
t
|
Si
t
y
rv
no se refieren al mismo objeto, el valor de
t
es equivalente al valor de
rv
antes de la asignación.
El nuevo valor de
|
Notas
El tipo no necesita implementar un
move assignment operator
para satisfacer este requisito de tipo: un
copy assignment operator
que tome su parámetro por valor o como
const Type&
, se vinculará a un argumento rvalue.
Si una clase
MoveAssignable
implementa un operador de asignación de movimiento, también puede implementar
semánticas de movimiento
para aprovechar el hecho de que el valor de
rv
después de la asignación no está especificado.
Véase también
|
(C++11)
(C++11)
(C++11)
|
verifica si un tipo tiene un operador de asignación de movimiento
(plantilla de clase) |
|
(C++20)
|
especifica que un tipo puede ser asignado desde otro tipo
(concepto) |