C++ named requirements: UnaryTypeTrait (since C++11)
From cppreference.net
C++
C++ named requirements
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
一个 UnaryTypeTrait 是一个类模板,它通过 std::integral_constant (通常是 std::bool_constant )特化来描述其模板类型参数的属性。
要求
- DefaultConstructible 与 CopyConstructible 。
- 接受一个模板类型参数(允许存在额外的可选模板参数)。
- 公开且明确地派生自特化的 std::integral_constant ,称为其 基特征 。
- 基特征 的成员名称未被隐藏,且可明确访问。
标准库
以下 类型特征 均满足 UnaryTypeTrait :
以下标准库类模板同样满足 UnaryTypeTrait 的要求。
|
(C++11)
|
具有指定类型和值的编译时常量
(类模板) |
|
(C++17)
|
逻辑非元函数
(类模板) |
|
(C++11)
|
获取
|
|
(C++11)
|
获取
array
的大小
(类模板特化) |
|
(C++11)
|
获取
pair
的大小
(类模板特化) |
|
(C++17)
|
在编译时获取
variant
可选项列表的大小
(类模板) (变量模板) |
|
(C++11)
|
指示对象是
std::bind
表达式或可作为此类表达式使用
(类模板) |
|
(C++11)
|
指示对象是标准占位符或可作为占位符使用
(类模板) |
|
(C++17)
|
测试类是否表示执行策略
(类模板) |