C++ 命名要求: 一元类型特性(UnaryTypeTrait) (C++11 起)
一个 一元类型特性(UnaryTypeTrait) 是一个类模板,它通过 integral_constant
(通常是 bool_constant
)特化来描述其模板类型参数的属性。
要求
- 可默认构造(DefaultConstructible) 和 可复制构造(CopyConstructible)
- 接受一个模板类型参数(额外的模板参数是可选且允许的)
- 公开且明确地派生自
integral_constant
的特化,称为其 基本特性(base characteristic) - 基本特性的成员名称没有被隐藏并且明确可用
标准库
以下类型属性都满足 一元类型特性(UnaryTypeTrait)。
- 主类型类别
- 复合类型类别
- 类型属性
- 支持的操作
- 属性查询
以下标准库类模板也满足 一元类型特性(UnaryTypeTrait)。
pub | integral_constant(C++11) | 指定类型和指定值的编译时常量 |
pub | negation(C++17) | 逻辑非元函数 |
pub | std::tuple_size<std::tuple>(C++11) | 在编译时获取元组的大小 |
pub | std::tuple_size<std::array>(C++11) | 获取数组的大小 |
pub | std::tuple_size<std::pair>(C++11) | 获取对的大小 |
pub | variant_size variant_size_v(C++17) | 在编译时获取变体(variant)替代方案列表的大小 |
pub | is_bind_expression(C++11) | 指示对象是否为 std::bind 表达式或可用作其一 |
pub | is_placeholder(C++11) | 指示对象是否为标准占位符或可用作其一 |
pub | is_execution_policy(C++17) | 测试类是否表示执行策略 |