Namespaces
Variants

C++ named requirements: UnaryTypeTrait (since C++11)

From cppreference.net
C++ named requirements

UnaryTypeTrait は、そのテンプレート型パラメータの特性を std::integral_constant (通常は std::bool_constant )の特殊化を用いて記述するクラステンプレートです。

要件

  • DefaultConstructible および CopyConstructible であること。
  • 1つのテンプレート型パラメータを取ること(追加のテンプレートパラメータは任意で許可される)。
  • std::integral_constant の特殊化から公開かつ明確に派生していること(これは 基底特性 として知られる)。
  • 基底特性 のメンバ名が隠蔽されておらず、明確に利用可能であること。

標準ライブラリ

以下の type traits はすべて UnaryTypeTrait を満たします:

以下の標準ライブラリクラステンプレートも UnaryTypeTrait を満たします。

指定された型と値を持つコンパイル時定数
(クラステンプレート)
(C++17)
論理NOTメタ関数
(クラステンプレート)
tuple のサイズを取得する


(クラステンプレート特殊化)

array のサイズを取得する
(クラステンプレート特殊化)
pair のサイズを取得する
(クラステンプレート特殊化)
コンパイル時に variant の代替型リストのサイズを取得する
(クラステンプレート) (変数テンプレート)
オブジェクトが std::bind 式であるか、またはそのように使用できることを示す
(クラステンプレート)
オブジェクトが標準プレースホルダーであるか、またはそのように使用できることを示す
(クラステンプレート)
クラスが実行ポリシーを表すかどうかをテストする
(クラステンプレート)