C++ 概念: MoveAssignable (C++11起)

来自cppreference.com
< cpp‎ | concept

说明该类型的实例可以被移动复制(移动)。这意味着该类型拥有移动语义:可以以尽可能小的开销将其内部状态传递给相同类型的另一个实例。

[编辑] 要求

该类型必须满足 CopyAssignable 的要求,或者/并且实现下列函数:

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 );
(至少实现其中之一)

移动赋值操作符:使赋值为 other 的内容。移动操作后 other 的内部状态未指定,然而应该仍是有效的,该类型的不变量应该还是有效的(no invariants of the type are broken)。该函数必须返回 *this

下列表达式必须达到所述效果:

表达式 效果
a = rv; arv 等价,aType 类型的实例、rvType 类型的右值引用

[编辑] 另请参阅

检查对象是否重载了移动赋值运算符
(类模板) [edit]