命名空间
变体
操作

C++ 命名要求: MoveAssignable (自 C++11 起)

来自 cppreference.com
 
 
C++ 命名要求
 

指定该类型的实例可以从一个 右值 参数赋值。

[编辑] 要求

如果类型 T 满足 MoveAssignable,则

鉴于

以下表达式必须有效,并且具有其指定的效应。

表达式 返回类型 返回值 后置条件
t = rv T& t 如果 trv 不引用同一个对象,则 t 的值将等效于赋值前 rv 的值。

rv 的新值未指定。

[编辑] 注意

该类型不需要实现 移动赋值运算符 才能满足此类型要求:一个 复制赋值运算符,它按值或作为 const Type& 获取其参数,将绑定到右值参数。

如果 MoveAssignable 类实现了一个移动赋值运算符,它也可以实现 移动语义,以利用赋值后 rv 的值未指定这一事实。

[编辑] 另请参见

检查类型是否具有移动赋值运算符
(类模板) [编辑]
指定类型是否可以从另一种类型赋值
(概念) [编辑]