std::experimental::ranges::MoveConstructible
来自 cppreference.com
< cpp | experimental | ranges
定义在头文件 <experimental/ranges/concepts> 中 |
||
template< class T > concept bool MoveConstructible = |
(范围 TS) | |
如果 T
是引用类型,或者它是一个对象类型,并且该类型对象可以从该类型的右值在直接和复制初始化上下文中构造(具有通常的语义),则满足概念 MoveConstructible
。
更准确地说,如果 T
是一个对象类型,则 MoveConstructible<T>
仅在给定以下条件时满足:
-
rv
,一个类型为T
的右值,以及 -
u2
,一个与rv
相等且类型为T
的不同对象,
以下条件为真:
- 在定义 T u = rv; 之后,
u
等于u2
; -
T{rv}
等于u2
;以及 - 如果
T
不是常量限定的,那么rv
的结果状态(在上述任意一条项目符号中的定义/表达式计算后)是有效的但未指定的;否则,它保持不变。
[编辑] 另请参阅
(C++11)(C++11)(C++11) |
检查类型是否可以从右值引用构造 (类模板) |