C++ 具名要求:一元类型特征 (UnaryTypeTrait)
来自cppreference.com
                    
                                        
                    
                    
                                                            
                    一元类型特征 (UnaryTypeTrait) 是类模板,以一个 integral_constant (常为 bool_constant )特化描述其模板类型形参的属性。
要求
- 可默认构造 (DefaultConstructible) 且可复制构造 (CopyConstructible)
 - 接收一个模板类型形参(允许可选的额外模板形参)
 - 公开且无歧义地从称为其基特征( base characteristic )的 intergral_constant 特化派生
 - 基特征的成员名不被隐藏,且无歧义地可用
 
标准库
下列类型特征全都满足一元类型特征 (UnaryTypeTrait) :
- 基础类型类别
 - 合成类型类别
 - 类型属性
 - 受支持操作
 - 属性查询
 
下列标准库类模板亦满足一元类型特征 (UnaryTypeTrait) :
|    (C++17)  | 
  逻辑非元函数  (类模板)  | 
  在编译时获得 tuple 的大小 (类模板特化)  | |
  获得 array 的大小  (类模板特化)  | |
|    (C++11)  | 
  获得 pair 的大小  (类模板特化)  | 
|    (C++17)  | 
  在编译时获得 variant 可选项列表的大小 (类模板) (变量模板)  | 
|    (C++11)  | 
  指示对象为 std::bind 表达式,或能被用作这种表达式 (类模板)  | 
|    (C++11)  | 
   表明一个对象是标准占位符,或者可以用作标准占位符   (类模板)  | 
|    (C++17)  | 
   测试一个类是否表示某种执行策略  (类模板)  |