C++ 命名要求: 一元类型特性 (UnaryTypeTrait) (自 C++11 起)
来自 cppreference.cn
一个 一元类型特性 (UnaryTypeTrait) 是一个类模板,它通过 std::integral_constant (通常是 std::bool_constant) 的特化来描述其模板类型参数的属性。
[编辑] 要求
- 可默认构造 (DefaultConstructible) 和 可复制构造 (CopyConstructible)。
- 接受一个模板类型参数(额外的模板参数是可选和允许的)。
- 公开且无歧义地派生自 std::integral_constant 的特化,称为其基本特性 (base characteristic)。
- 基本特性的成员名称未被隐藏,并且可无歧义地访问。
[编辑] 标准库
以下所有类型特性 (type traits) 都满足 一元类型特性 (UnaryTypeTrait)
- 主要类型类别 (Primary type categories)
- 复合类型类别 (Composite type categories)
- 类型属性
- 支持的操作
- 属性查询 (Property queries)
以下标准库类模板也满足 一元类型特性 (UnaryTypeTrait)。
(C++11) |
指定类型和指定值的编译时常量 (类模板) |
(C++17) |
逻辑 NOT 元函数 (类模板) |
(C++11) |
获取 tuple 的大小一个 |
(C++11) |
获得 array 的大小(类模板特化) |
(C++11) |
获取 pair 的大小(类模板特化) |
(C++17) |
在编译时获取 `variant` 替代列表的大小 (类模板) (变量模板) |
(C++11) |
指示一个对象是 `std::bind` 表达式或可用作 `std::bind` 表达式 (类模板) |
(C++11) |
指示一个对象是标准占位符或可用作标准占位符 (类模板) |
(C++17) |
测试一个类是否表示执行策略 (类模板) |