Namespaces
Variants

std:: default_initializable

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

concept default_initializable = std:: constructible_from < T > && requires { T { } ; } &&

/* T t; は適正な形式、詳細は以下を参照 */ ;
(C++20以降)

default_initializable コンセプトは、型 T の変数が

アクセスチェックは、Tとは無関係なコンテキストで行われるかのように実行されます。変数初期化の直接的なコンテキストの有効性のみが考慮されます。

実装例

template<class T>
concept default_initializable =
    std::constructible_from<T> &&
    requires { T{}; ::new T; };

参考文献

  • C++23標準 (ISO/IEC 14882:2024):
  • 18.4.12 コンセプト default_initializable [concept.default.init]
  • C++20規格 (ISO/IEC 14882:2020):
  • 18.4.12 コンセプト default_initializable [concept.default.init]

関連項目

指定された型の変数が引数型のセットから構築可能、またはバインド可能であることを指定する
(コンセプト)
型がデフォルトコンストラクタを持つかどうかをチェックする
(クラステンプレート)