C++ concepts: MoveConstructible (since C++11)
From cppreference.com
Specifies that an instance of the type can be move-constructed (moved). This means that type has move semantics: that is, can transfer its internal state to a new instance of the same type potentially minimizing the overhead.
[edit] Requirements
The type must meet CopyConstructible requirements and/or implement the following functions:
Type::Type
Type::Type( Type&& other ); Type::Type( const Type&& other ); |
(One of the variants is sufficient) | |
Move constructor: constructs an instance of a type with 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 following expressions must have the specified effects:
Expression | Effects |
Type a = rv; | a is equivalent to rv, where rv is a rvalue reference of Type. |
Type(rv); | a temporary object of type Type is equivalent to rv, where rv is a rvalue reference of Type. |
[edit] See also
(C++11) (C++11) (C++11) |
checks if a type has a move constructor (class template) |