C++ 命名要求: MoveConstructible (自 C++11 起)
指定可以从右值参数构造类型实例。
要求
如果满足以下条件,类型 T 满足 MoveConstructible:
给定
rv
,一个类型为 T 的右值表达式u
, 任意标识符
以下表达式必须有效并具有其指定的效果
pub | 表达式 | 后置条件 |
pub | T u = rv; | u 的值等同于初始化前 rv 的值。 rv 的新值未指定 |
pub | T(rv) | T(rv) 的值等同于初始化前 rv 的值。 rv 的新值未指定 |
备注
一个类不必实现移动构造函数来满足此类型要求:一个接受 const T& 参数的复制构造函数可以绑定右值表达式。
如果一个 MoveConstructible 类实现了一个移动构造函数,它也可以实现移动语义,以利用构造后 rv 的值未指定的事实。