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