标准库头文件 <type_traits>
来自cppreference.com
                    
                                        
                    
                    
                                                            
                    此头文件是类型支持库的一部分。
 类 | |
 辅助类 | |
|    (C++11)(C++17)  | 
  具有指定值的指定类型的编译期常量   (类模板)  | 
  true_type
 | 
std::integral_constant<bool, true> | 
  false_type
 | 
std::integral_constant<bool, false> | 
 基础类型分类 | |
|    (C++11)  | 
   检查类型是否为 void   (类模板)  | 
|    (C++14)  | 
   检查类型是否为 std::nullptr_t   (类模板)  | 
|    (C++11)  | 
   检查类型是否为整型   (类模板)  | 
|    (C++11)  | 
   检查类型是否是浮点类型   (类模板)  | 
|    (C++11)  | 
   检查类型是否是数组类型   (类模板)  | 
|    (C++11)  | 
  检查类型是否是枚举类型   (类模板)  | 
|    (C++11)  | 
  检查类型是否为联合体类型  (类模板)  | 
|    (C++11)  | 
  检查类型是否非联合类类型  (类模板)  | 
|    (C++11)  | 
   检查是否为函数类型   (类模板)  | 
|    (C++11)  | 
  检查类型是否为指针类型  (类模板)  | 
|    (C++11)  | 
   检查类型是否为左值引用   (类模板)  | 
|    (C++11)  | 
   检查类型是否为右值引用   (类模板)  | 
|    (C++11)  | 
  检查类型是否为指向非静态成员对象的指针  (类模板)  | 
|    (C++11)  | 
  检查类型是否为指向非静态成员函数的指针  (类模板)  | 
 复合类型分类 | |
|    (C++11)  | 
   检查是否是基础类型   (类模板)  | 
|    (C++11)  | 
  检查类型是否为算术类型  (类模板)  | 
|    (C++11)  | 
  检查类型是否为标量类型  (类模板)  | 
|    (C++11)  | 
   检查是否是对象类型   (类模板)  | 
|    (C++11)  | 
   检查是否为复合类型   (类模板)  | 
|    (C++11)  | 
  检查类型是否为左值引用或右值引用  (类模板)  | 
|    (C++11)  | 
   检查类型是否为指向非静态成员函数或对象的指针类型  (类模板)  | 
 类型的性质 | |
|    (C++11)  | 
  检查类型是否为 const 限定  (类模板)  | 
|    (C++11)  | 
  检查类型是否为 volatile 限定  (类模板)  | 
|    (C++11)  | 
   检查类型是否平凡   (类模板)  | 
|    (C++11)  | 
  检查类型是否可平凡复制  (类模板)  | 
|    (C++11)  | 
   检查是否是一个标准布局类型   (类模板)  | 
|    (C++11)(C++20 中弃用)  | 
  检查类型是否为简旧数据(POD)类型  (类模板)  | 
|    (C++11)(C++17 中弃用)(C++20 中移除)  | 
  检查类型是否为字面类型  (类模板)  | 
|    检查是否该类型对象的每一位都对其值有贡献   (类模板)  | |
|    (C++11)  | 
  检查类型是否为类(但非联合体)类型且无非静态数据成员  (类模板)  | 
|    (C++11)  | 
  检查类型是否为多态类类型  (类模板)  | 
|    (C++11)  | 
  检查类型是否为抽象类类型  (类模板)  | 
|    (C++14)  | 
   检查类型是否为 final 类类型  (类模板)  | 
|    (C++17)  | 
  检查类型是否聚合类型  (类模板)  | 
|    (C++11)  | 
  检查类型是否为有符号算术类型  (类模板)  | 
|    (C++11)  | 
  检查类型是否为无符号算术类型  (类模板)  | 
|    (C++20)  | 
  检查类型是否为有已知边界的数组类型  (类模板)  | 
|    (C++20)  | 
  检查类型是否为有未知边界的数组类型  (类模板)  | 
|    (C++23)  | 
   检查类型是否为有作用域枚举类型   (类模板)  | 
 受支持操作 | |
|    (C++11)(C++11)(C++11)  | 
   检查类型是否带有针对特定实参的构造函数   (类模板)  | 
|   检查类型是否有默认构造函数  (类模板)  | |
|    (C++11)(C++11)(C++11)  | 
  检查类型是否拥有复制构造函数  (类模板)  | 
|    (C++11)(C++11)(C++11)  | 
  检查类型是否能从右值引用构造  (类模板)  | 
|    (C++11)(C++11)(C++11)  | 
   检查类型是否拥有针对特定实参的赋值运算符   (类模板)  | 
|    (C++11)(C++11)(C++11)  | 
  检查类型是否拥有复制赋值运算符  (类模板)  | 
|    (C++11)(C++11)(C++11)  | 
  检查类型是否有拥有移动赋值运算符  (类模板)  | 
|    (C++11)(C++11)(C++11)  | 
  检查类型是否拥有未被弃置的析构函数  (类模板)  | 
|    (C++11)  | 
  检查类型是否拥有虚析构函数  (类模板)  | 
|    (C++17)(C++17)(C++17)(C++17)  | 
   检查一个类型的对象是否能与同类型或不同类型的对象交换  (类模板)  | 
 性质查询 | |
|    (C++11)  | 
   获取类型的对齐要求   (类模板)  | 
|    (C++11)  | 
   获取数组类型的维数   (类模板)  | 
|    (C++11)  | 
   获取数组类型在指定维度的大小   (类模板)  | 
 类型关系 | |
|    (C++11)  | 
   检查两个类型是否相同   (类模板)  | 
|    (C++11)  | 
   检查一个类型是否派生自另一个类型   (类模板)  | 
|    (C++11)(C++20)  | 
   检查是否能转换一个类型为另一类型   (类模板)  | 
|    (C++20)  | 
  检查二个类型是否布局兼容  (类模板)  | 
|   检查一个类型是否为另一类型的指针可互转换(起始)基类  (类模板)  | |
|   检查类型能否以给定的实参类型调用(如同以 std::invoke)  (类模板)  | |
 常-易变性说明符 | |
|    (C++11)(C++11)(C++11)  | 
  从给定类型移除 const 或/与 volatile 限定符  (类模板)  | 
|    (C++11)(C++11)(C++11)  | 
   添加 const 或/与 volatile 限定符到给定类型   (类模板)  | 
 引用 | |
|    (C++11)  | 
  从给定类型移除引用  (类模板)  | 
|    (C++11)(C++11)  | 
  向给定类型添加左值或右值引用  (类模板)  | 
 指针 | |
|    (C++11)  | 
   移除给定类型的一层指针   (类模板)  | 
|    (C++11)  | 
   对给定类型添加一层指针   (类模板)  | 
 符号修饰符 | |
|    (C++11)  | 
  使给定的整型类型有符号   (类模板)  | 
|    (C++11)  | 
  使给定的整型类型无符号   (类模板)  | 
 数组 | |
|    (C++11)  | 
  从给定数组类型移除一个维度  (类模板)  | 
|    (C++11)  | 
   移除给定数组类型的所有维度   (类模板)  | 
 杂项变换 | |
|    (C++11)  | 
   定义适于用作给定大小的类型的未初始化存储的类型   (类模板)  |