Difference between revisions of "cpp/named req/MoveAssignable"
m (Text replace - "{{tdcl" to "{{dcl") |
m (Text replace - "/sidebar" to "/navbar") |
||
Line 1: | Line 1: | ||
{{cpp/concept/title|MoveAssignable {{mark since c++11}}}} | {{cpp/concept/title|MoveAssignable {{mark since c++11}}}} | ||
− | {{cpp/concept/ | + | {{cpp/concept/navbar}} |
Specifies that an instance of the type can be move-assigned (moved). This means that type has move semantics: that is, can transfer its internal state to another instance of the same type potentially minimizing the overhead. | Specifies that an instance of the type can be move-assigned (moved). This means that type has move semantics: that is, can transfer its internal state to another instance of the same type potentially minimizing the overhead. |
Revision as of 12:27, 15 June 2012
Template:cpp/concept/title Template:cpp/concept/navbar
Specifies that an instance of the type can be move-assigned (moved). This means that type has move semantics: that is, can transfer its internal state to another instance of the same type potentially minimizing the overhead.
Requirements
The type must meet Template:concept requirements and/or implement the following functions:
Type::operator=
Type& Type::operator=( Type&& other ); Type& Type::operator=( const Type&& other ); |
(One of the variants is sufficient) | |
Move assignment operator: assigns the contents of other
. The internal state of other
is unspecified after the move. However, it must still be valid, that is, no invariants of the type are broken. The function must return *this
.
The following expressions must have the specified effects:
Expression | Effects |
a = rv; | a is equivalent to rv , where a is an instance of Type and rv is a rvalue reference of Type .
|
See also
(C++11)(C++11)(C++11) |
checks if a type has a move assignment operator (class template) |