C++ named requirements: UnaryTypeTrait (since C++11)
From ja.cppreference.net
UnaryTypeTrait は、そのテンプレート型パラメータの特性を std::integral_constant (通常は std::bool_constant )の特殊化を用いて記述するクラステンプレートです。
要件
- DefaultConstructible および CopyConstructible であること。
- 1つのテンプレート型パラメータを取ること(追加のテンプレートパラメータは任意で許可される)。
- std::integral_constant の特殊化から公開かつ明確に派生していること(これは 基底特性 として知られる)。
- 基底特性 のメンバ名が隠蔽されておらず、明確に利用可能であること。
標準ライブラリ
以下の type traits はすべて UnaryTypeTrait を満たします:
以下の標準ライブラリクラステンプレートも UnaryTypeTrait を満たします。
|
(C++11)
|
指定された型と値を持つコンパイル時定数
(クラステンプレート) |
|
(C++17)
|
論理NOTメタ関数
(クラステンプレート) |
|
(C++11)
|
tupleのサイズを取得する
|
|
(C++11)
|
arrayのサイズを取得する
(クラステンプレート特殊化) |
|
(C++11)
|
pairのサイズを取得する
(クラステンプレート特殊化) |
|
(C++17)
|
コンパイル時にvariantの代替型リストのサイズを取得する
(クラステンプレート) (変数テンプレート) |
|
(C++11)
|
オブジェクトがstd::bind式であるか、またはそのように使用できることを示す
(クラステンプレート) |
|
(C++11)
|
オブジェクトが標準プレースホルダーであるか、またはそのように使用できることを示す
(クラステンプレート) |
|
(C++17)
|
クラスが実行ポリシーを表すかどうかをテストする
(クラステンプレート) |