Namespaces
Variants

std::experimental::ranges:: MoveConstructible

From cppreference.net
ヘッダーで定義 <experimental/ranges/concepts>
template < class T >

concept bool MoveConstructible =

Constructible < T, T > && ConvertibleTo < T, T > ;
(ranges TS)

MoveConstructible の概念は、 T が参照型である場合、またはその型のオブジェクトが右辺値から直接初期化とコピー初期化の両方の文脈で通常のセマンティクスで構築可能なオブジェクト型である場合に満たされます。

より正確には、 T がオブジェクト型である場合、 MoveConstructible<T> は以下の条件が与えられたときにのみ満たされます。

  • rv , 型 T の右辺値、および
  • u2 , 型 T rv と等しい別個のオブジェクト、

以下が真実です:

  • 定義 T u = rv ; の後、 u u2 と等しい;
  • T{rv} u2 と等しい;および
  • T がconst修飾されていない場合、 rv の結果状態(上記いずれかの定義/式が評価された後)は有効だが未指定である;そうでなければ、変更されない。

関連項目

型が右辺値参照から構築可能かどうかをチェックする
(クラステンプレート)