Namespaces
Variants

std::experimental::ranges:: CopyConstructible

From cppreference.net
template < class T >

concept bool CopyConstructible =
MoveConstructible < T > &&
Constructible < T, T & > && ConvertibleTo < T & , T > &&
Constructible < T, const T & > && ConvertibleTo < const T & , T > &&

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

CopyConstructible の概念は、 T が左辺値参照型である場合、または MoveConstructible オブジェクト型であり、その型の(const修飾された可能性のある)左辺値またはconst右辺値から、直接初期化とコピー初期化の両方のコンテキストで通常のセマンティクス(ソースは変更されずにコピーが構築される)を用いてオブジェクトを構築できる場合に満たされます。

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

  • v 、型( const 修飾可能性あり) T の左値、または型 const T の右値、

以下が真実です:

  • 定義後 T u = v ; u v と等しい;
  • T { v } v と等しい。

関連項目

型がコピーコンストラクタを持つかどうかをチェックする
(クラステンプレート)