C++ 具名要求:可移动构造 (MoveConstructible) (C++11 起)
来自cppreference.com
C++ 具名要求
| 基础 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 类型属性 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 库所属 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 容器 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 容器元素 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 迭代器 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 流 I/O | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 格式化 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 随机数 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 并发 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 范围 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 其他 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
指定该类型的实例可以从一个右值实参构造。
要求
以下情况下,类型 T 满足可移动构造 (MoveConstructible)
:
给定
-
T类型的右值表达式rv - 任意标识符
u
下列表达式必须合法且拥有其指定的效果
| 表达式 | 后条件 |
|---|---|
| T u = rv; | u 的值等于 rv 在初始化前的值。rv
的新值未指明。
|
| T(rv) | T(rv) 的值等于 rv
在初始化前的值。rv 的新值未指明。
|
注解
类不必为满足此要求而实现移动构造函数:接收
const T& 实参的复制构造函数也能绑定右值表达式。
若可移动构造 (MoveConstructible)
类实现了移动构造函数,则它亦可实现移动语义,以从“构造后 rv
的值未指明”的事实中获利。
参阅
|
(C++11)(C++11)(C++11)
|
检查类型是否能从右值引用构造 (类模板) |
|
(C++20)
|
指定能移动构造一个类型的对象 (概念) |