Namespaces
Variants

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

From cppreference.net
C++ named requirements

A BinaryTypeTrait は、2つのテンプレート型パラメータ間の関係を std::integral_constant (通常は std::bool_constant )の特殊化で記述するクラステンプレートです。

要件

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

標準ライブラリ

以下の標準ライブラリクラステンプレートは BinaryTypeTrait を満たします:

(C++11)
2つの型が同じかどうかをチェックする
(クラステンプレート)
(C++11)
ある型が別の型の基底クラスかどうかをチェックする
(クラステンプレート)
ある型が別の型の仮想基底クラスかどうかをチェックする
(クラステンプレート)
ある型が別の型に変換可能かどうかをチェックする
(クラステンプレート)
2つの型が レイアウト互換 かどうかをチェックする
(クラステンプレート)
ある型が別の型の ポインター相互変換可能 な(初期)基底クラスかどうかをチェックする
(クラステンプレート)
型が指定された引数型で( std::invoke によって)呼び出し可能かどうかをチェックする
(クラステンプレート)
指定された型がuses-allocator構築をサポートするかどうかをチェックする
(クラステンプレート)