std::experimental::ranges::MoveConstructible
来自 cppreference.cn
< cpp | experimental | ranges
template< class T > concept bool MoveConstructible = |
(ranges TS) | |
如果 T 是引用类型,或者如果 T 是对象类型,且该类型的对象可以通过右值引用在该类型的直接初始化和复制初始化上下文中构造,并具有通常的语义,则概念 MoveConstructible
得到满足。
更准确地说,如果 T 是对象类型,则仅当给定以下条件时,MoveConstructible<T>
才得到满足:
-
rv
,类型为T
的右值,以及 -
u2
,与rv
相等的类型为T
的不同对象,
以下条件为真
- 在定义 T u = rv; 之后,
u
等于u2
; -
T{rv}
等于u2
;并且 - 如果
T
没有 const 限定,则rv
的结果状态(在上述任何要点中评估定义/表达式之后)是有效的但未指定的;否则,它是不变的。
[编辑] 参见
(C++11)(C++11)(C++11) |
检查类型是否可以从右值引用构造 (类模板) |