C++ 具名要求:二元类型特性 (BinaryTypeTrait)
来自cppreference.com
二元类型特性 (BinaryTypeTrait) 是类模板,以一个 std::integral_constant(通常是 std::bool_constant)特化描述它的两个模板类型形参间的关系。
要求
- 可默认构造 (DefaultConstructible) 并可复制构造 (CopyConstructible)
- 接收两个模板类型形参(允许可选的额外模板形参)
- 公开且无歧义地从一个 std::integral_constant 特化派生,该特化被称为它的基特征(base characteristic)
- 基特征 的成员名没有被隐藏,且无歧义地可用
标准库
下列标准库类模板满足二元类型特性 (BinaryTypeTrait) :
(C++11) |
检查两个类型是否相同 (类模板) |
(C++11) |
检查一个类型是否派生自另一个类型 (类模板) |
(C++11)(C++20) |
检查是否能转换一个类型为另一类型 (类模板) |
(C++20) |
检查二个类型是否布局兼容 (类模板) |
检查一个类型是否为另一类型的指针可互转换(起始)基类 (类模板) | |
检查类型能否以给定的实参类型调用(如同以 std::invoke) (类模板) | |
(C++11) |
检查指定的类型是否支持使用分配器的构造 (类模板) |