C++ named requirements: BinaryTypeTrait (since C++11)
From cppreference.net
C++
C++ named requirements
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
一个 BinaryTypeTrait 是类模板,通过 std::integral_constant (通常为 std::bool_constant )特化来描述其两个模板类型参数之间的关系。
要求
- DefaultConstructible 与 CopyConstructible 。
- 接受两个模板类型参数(允许存在额外的可选模板参数)。
- 公开且明确地派生自 std::integral_constant 的特化,该特化被称为其 基础特征 。
- 基础特征 的成员名称未被隐藏,且可明确访问。
标准库
以下标准库类模板满足 BinaryTypeTrait :
|
(C++11)
|
检查两个类型是否相同
(类模板) |
|
(C++11)
|
检查一个类型是否是另一个类型的基类
(类模板) |
|
(C++26)
|
检查一个类型是否是另一个类型的虚基类
(类模板) |
|
(C++11)
(C++20)
|
检查一个类型是否可以转换为另一个类型
(类模板) |
|
(C++20)
|
检查两个类型是否
布局兼容
(类模板) |
|
检查一个类型是否是另一个类型的
指针可互转换
(初始)基类
(类模板) |
|
|
检查一个类型是否可以用给定的参数类型调用(如同通过
std::invoke
)
(类模板) |
|
|
(C++11)
|
检查指定类型是否支持使用分配器构造
(类模板) |