C++ 具名要求:一元类型特性 (UnaryTypeTrait)
来自cppreference.com
C++ 具名要求
| 基础 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 类型属性 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 库所属 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 容器 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 容器元素 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 迭代器 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 流 I/O | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 格式化 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 随机数 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 并发 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 范围 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 其他 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
一元类型特性 (UnaryTypeTrait) 是类模板,以一个 std::integral_constant(通常是 std::bool_constant)特化描述它的模板类型形参的属性。
要求
- 可默认构造 (DefaultConstructible) 且可复制构造 (CopyConstructible)
- 接收一个模板类型形参(允许可选的额外模板形参)
- 公开且无歧义地从一个 std::integral_constant 特化派生,该特化被称为它的基特征(base characteristic)
- 基特征 的成员名没有被隐藏,且无歧义地可用
标准库
下列类型特征全都满足一元类型特性 (UnaryTypeTrait) :
下列标准库类模板也满足一元类型特性 (UnaryTypeTrait)
:
|
(C++17)
|
逻辑非元函数 (类模板) |
|
(C++11)
|
在编译时获得 tuple 的大小 (类模板特化) |
|
(C++11)
|
获得 array 的大小 (类模板特化) |
|
(C++11)
|
获得 pair 的大小 (类模板特化) |
|
(C++17)
|
在编译时获得 variant 可选项列表的大小 (类模板) (变量模板) |
|
(C++11)
|
指示对象为 std::bind 表达式,或能被用作这种表达式 (类模板) |
|
(C++11)
|
表明一个对象是标准占位符,或者可以用作标准占位符 (类模板) |
|
(C++17)
|
测试一个类是否表示某种执行策略 (类模板) |