std:: default_initializable
|
定義ヘッダー
<concepts>
|
||
|
template
<
class
T
>
concept default_initializable
=
std::
constructible_from
<
T
>
&&
requires
{
T
{
}
;
}
&&
|
(C++20以降) | |
default_initializable
コンセプトは、型
T
の変数が
- value-initialized (すなわち、 T ( ) が well-formed かどうか);
- direct-list-initialized (空の初期化子リストからの、すなわち T { } が well-formed かどうか); および
- default-initialized (すなわち、 T t ; が well-formed かどうか)。
アクセスチェックは、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]
-
18.4.12 コンセプト
- C++20規格 (ISO/IEC 14882:2020):
-
-
18.4.12 コンセプト
default_initializable[concept.default.init]
-
18.4.12 コンセプト
関連項目
|
(C++20)
|
指定された型の変数が引数型のセットから構築可能、またはバインド可能であることを指定する
(コンセプト) |
|
(C++11)
(C++11)
(C++11)
|
型がデフォルトコンストラクタを持つかどうかをチェックする
(クラステンプレート) |