跳到主要内容

C++ 命名要求: BinaryTypeTrait (自 C++11 起)

一个 BinaryTypeTrait 是一个类模板,它通过一个 integral_constant(通常是 bool_constant)特化来描述其两个模板类型参数之间的关系。

要求

  • DefaultConstructibleCopyConstructible
  • 接受一个模板类型参数(额外的模板参数是可选且允许的)
  • 公开且明确地派生自 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 构造

C++ 命名要求: BinaryTypeTrait (自 C++11 起)

一个 BinaryTypeTrait 是一个类模板,它通过一个 integral_constant(通常是 bool_constant)特化来描述其两个模板类型参数之间的关系。

要求

  • DefaultConstructibleCopyConstructible
  • 接受一个模板类型参数(额外的模板参数是可选且允许的)
  • 公开且明确地派生自 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 构造