Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/named req/CopyAssignable"

From cppreference.com
< cpp‎ | named req
(other variants)
 
(Requirements)
Line 10: Line 10:
 
{{member | 1={{dcl small|Type::}}operator= | 2=
 
{{member | 1={{dcl small|Type::}}operator= | 2=
  
{{ddcl | notes={{mark|One of the functions is sufficient}} | 1=
+
{{ddcl | notes={{mark|One of the variants is sufficient}} | 1=
 
Type& Type::operator=( Type&& other );
 
Type& Type::operator=( Type&& other );
 
Type& Type::operator=( const Type&& other );
 
Type& Type::operator=( const Type&& other );

Revision as of 06:51, 11 March 2012

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

Specifies that an instance of the type can be copy-assigned (copied).

Requirements

The type must 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 begin Template:tdcl list hitem Template:tdcl list item Template:tdcl list end