C++ named requirements: UnaryTypeTrait (since C++11)
From cppreference.net
C++
C++ named requirements
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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)
|
クラスが実行ポリシーを表すかどうかをテストする
(クラステンプレート) |