Skip to main content

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

Specifies that an instance of the type can be assigned from an rvalue argument.

Requirements​

The type T satisfies *MoveAssignable * if
Given

The following expressions must be valid and have their specified effects

ExpressionReturn typeReturn valuePost-conditions
t = rvT&tIf t and rv do not refer to the same object , the value of t is equivalent to the value of rv before the assignment. The new value of rv is unspecified

Notes​

The type does not have to implement move assignment operator in order to satisfy this type requirement: a copy assignment operator that takes its parameter by value or as a const Type&, will bind to rvalue argument.

If a MoveAssignable class implements a move assignment operator, it may also implement move semantics to take advantage of the fact that the value of rv after assignment is unspecified.

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

Specifies that an instance of the type can be assigned from an rvalue argument.

Requirements​

The type T satisfies *MoveAssignable * if
Given

The following expressions must be valid and have their specified effects

ExpressionReturn typeReturn valuePost-conditions
t = rvT&tIf t and rv do not refer to the same object , the value of t is equivalent to the value of rv before the assignment. The new value of rv is unspecified

Notes​

The type does not have to implement move assignment operator in order to satisfy this type requirement: a copy assignment operator that takes its parameter by value or as a const Type&, will bind to rvalue argument.

If a MoveAssignable class implements a move assignment operator, it may also implement move semantics to take advantage of the fact that the value of rv after assignment is unspecified.