std:: move_constructible
From cppreference.net
|
ヘッダーで定義
<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++23標準 (ISO/IEC 14882:2024):
-
-
18.4.13 コンセプト
move_constructible[concept.moveconstructible]
-
18.4.13 コンセプト
- C++20 標準 (ISO/IEC 14882:2020):
-
-
18.4.13 コンセプト
move_constructible[concept.moveconstructible]
-
18.4.13 コンセプト
関連項目
|
(C++11)
(C++11)
(C++11)
|
型が右辺値参照から構築可能かどうかをチェックする
(クラステンプレート) |