名前空間
変種
操作

std::CopyConstructible

提供: cppreference.com
< cpp‎ | concepts
ヘッダ <concepts> で定義
template <class T>

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

  std::Constructible<T, const T> && std::ConvertibleTo<const T, T>;
(C++20以上)

コンセプト CopyConstructible は、 T が左辺値参照型の場合、またはその型のオブジェクトが通常のセマンティクスを用いた直接初期化およびコピー初期化の文脈においてその型の (const かもしれない) 左辺値または const 右辺値から構築可能な MoveConstructible オブジェクト型である場合に、満たされます。

より正確には、 T がオブジェクト型であれば、 CopyConstructible<T> は、以下の内容を満たす場合にのみ、満たされます。

  • (const かもしれない) T 型の左辺値または const T 型の右辺値 v

が与えられたとき、以下が真である。

  • 定義 T u = v; の後、 uv と等しい。
  • T(v)v と等しい。

[編集] 関連項目

型がコピーコンストラクタを持っているかどうか調べます
(クラステンプレート) [edit]