跳到主要内容

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

指定可以从右值参数构造类型实例。

要求

如果满足以下条件,类型 T 满足 MoveConstructible
给定

  • rv,一个类型为 T 的右值表达式
  • u, 任意标识符

以下表达式必须有效并具有其指定的效果

pub表达式后置条件
pubT u = rv;u 的值等同于初始化前 rv 的值。
rv 的新值未指定
pubT(rv)T(rv) 的值等同于初始化前 rv 的值。
rv 的新值未指定

备注

一个类不必实现移动构造函数来满足此类型要求:一个接受 const T& 参数的复制构造函数可以绑定右值表达式。

如果一个 MoveConstructible 类实现了一个移动构造函数,它也可以实现移动语义,以利用构造后 rv 的值未指定的事实。

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

指定可以从右值参数构造类型实例。

要求

如果满足以下条件,类型 T 满足 MoveConstructible
给定

  • rv,一个类型为 T 的右值表达式
  • u, 任意标识符

以下表达式必须有效并具有其指定的效果

pub表达式后置条件
pubT u = rv;u 的值等同于初始化前 rv 的值。
rv 的新值未指定
pubT(rv)T(rv) 的值等同于初始化前 rv 的值。
rv 的新值未指定

备注

一个类不必实现移动构造函数来满足此类型要求:一个接受 const T& 参数的复制构造函数可以绑定右值表达式。

如果一个 MoveConstructible 类实现了一个移动构造函数,它也可以实现移动语义,以利用构造后 rv 的值未指定的事实。