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