Namespaces
Variants
Views
Actions

cpp/named req/MoveAssignable

From cppreference.com
< cpp‎ | named req
Revision as of 01:27, 12 June 2012 by P12bot (Talk | contribs)

Template:cpp/concept/title Template:cpp/concept/sidebar

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 );
Type& Type::operator=( volatile Type&& other );

Type& Type::operator=( const volatile 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:

Template:tdcl list hitemTemplate:tdcl list item

See also

checks if a type has a move assignment operator
(class template) [edit]