C++ 命名要求: BinaryTypeTrait (自 C++11 起)
一个 BinaryTypeTrait 是一个类模板,它通过一个 integral_constant
(通常是 bool_constant
)特化来描述其两个模板类型参数之间的关系。
要求
- DefaultConstructible 和 CopyConstructible
- 接受一个模板类型参数(额外的模板参数是可选且允许的)
- 公开且明确地派生自
integral_constant
的特化,称为其 base characteristic - 基特性的成员名称未被隐藏且明确可用
标准库
以下标准库类模板满足 BinaryTypeTrait。
公开 | is_same(C++11) | 检查两种类型是否相同 |
公开 | is_base_of(C++17) | 检查一个类型是否派生自另一个类型 |
公开 | is_convertible(C++11) is_nothrow_convertible(C++20) | 检查一个类型是否可以转换为另一个类型 |
公开 | is_invocable is_invocable_r is_nothrow_invocable is_nothrow_invocable_r(C++17) | 检查一个类型是否可以被给定参数类型调用(如同通过 std::invoke) |
公开 | uses_allocator(C++11) | 检查指定的类型是否支持 uses-allocator 构造 |