std::move_constructible
来自cppreference.com
|
在标头
<concepts>
定义
|
||
|
template<
class T
>
concept move_constructible = std::constructible_from<T, T> && std::convertible_to<T, T>; |
(C++20 起) | |
概念 move_constructible 若符合这些条件则得到满足:T
为引用类型,或它是对象类型,并且能在直接和复制初始化语境中,以通常语义从该类型右值构造该类型对象。
语义要求
若 T 是对象类型,则 move_constructible<T>
仅若符合下列条件才得到实现。给定
-
rv,T类型右值,和 -
u2,等于rv的T类型不同对象,
下列为真:
- 在定义 T u
= rv;
后,
u等于u2; -
T(rv)等于u2;且 - 若
T无 const 限定,则rv的结果状态(在上述任一条中求值的定义/表达式后)合法但未指定;否则不更改它。
参阅
|
(C++11)(C++11)(C++11)
|
检查类型是否能从右值引用构造 (类模板) |