std::move_constructible
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <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> は、以下の内容が満たされる場合にのみ、満たされます。
T型の右辺値rvrvと等しいT型の別のオブジェクトu2
が与えられたとき、以下がすべて真である。
- 定義
T u = rv;の後、uはu2と等しい。 T(rv)はu2と等しい。Tが const 修飾されていなければ、 (上の項目のいずれかの定義または式が評価された後の)rvの結果の状態は有効だけれども未規定である。 そうでなければ、それは変更されない。
関連項目
(C++11)(C++11)(C++11) |
型が右辺値参照から構築できるかどうか調べます (クラステンプレート) |