C++ 命名要求: MoveAssignable (自 C++11 起)
来自 cppreference.com
指定该类型的实例可以从一个 右值 参数赋值。
[编辑] 要求
如果类型 T
满足 MoveAssignable,则
鉴于
以下表达式必须有效,并且具有其指定的效应。
表达式 | 返回类型 | 返回值 | 后置条件 |
---|---|---|---|
t = rv | T&
|
t
|
如果 t 和 rv 不引用同一个对象,则 t 的值将等效于赋值前 rv 的值。
|
[编辑] 注意
该类型不需要实现 移动赋值运算符 才能满足此类型要求:一个 复制赋值运算符,它按值或作为 const Type&
获取其参数,将绑定到右值参数。
如果 MoveAssignable 类实现了一个移动赋值运算符,它也可以实现 移动语义,以利用赋值后 rv
的值未指定这一事实。
[编辑] 另请参见
(C++11)(C++11)(C++11) |
检查类型是否具有移动赋值运算符 (类模板) |
(C++20) |
指定类型是否可以从另一种类型赋值 (概念) |