Namespaces
Variants

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

From cppreference.net
C++ named requirements

Especifica que una instancia del tipo puede ser asignada desde un rvalue argumento.

Requisitos

El tipo T satisface MoveAssignable si

Dado

  • t , una expresión lvalue modificable de tipo T ,
  • rv , una expresión rvalue de tipo T .

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 rv no está especificado.

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

verifica si un tipo tiene un operador de asignación de movimiento
(plantilla de clase)
especifica que un tipo puede ser asignado desde otro tipo
(concepto)