<type_traits>
定义了提供编译时常数的模板,这些常数可提供有关其类型参数的属性的信息。
#include <type_traits>
备注
类型谓词是采用一个或两个类型参数的模板。 如果类型谓词保留为 true,则它是以公共方式直接或间接从 true_type Typedef 派生的。 如果类型谓词保留为 false,则它是以公共方式直接或间接从 false_type Typedef 派生的。
类型修改器是采用一个或多个模板参数且包含一个成员的模板,如下所示:
- typedef modified-type type;
类型查询是采用一个或多个模板参数的模板。 类型查询是以公共方式直接或间接从 integral_constant<std::size_t, value> 派生的。 它保留了作为参数 value 进行传递的值。
别名模板
提供了 typename foo<T>::type 的别名模板,其中“foo”是模板类名称。 例如,add_const 具有其类型 add_const_t 的别名模板,定义如下:
template<class T>
using add_const_t = typename add_const<T>::type;
add_const_t |
aligned_storage_t |
make_signed_t |
remove_pointer_t |
add_cv_t |
aligned_union_t |
make_unsigned_t |
remove_reference_t |
add_lvalue_reference_t |
common_type_t |
remove_all_extents_t |
remove_volatile_t |
add_pointer_t |
conditional_t |
remove_const_t |
result_of_t |
add_rvalue_reference_t |
decay_t |
remove_cv_t |
underlying_type_t |
add_volatile_t |
enable_if_t |
remove_extent_t |
类
从类型设置 const 类型。 |
|
从类型设置 const/volatile 类型。 |
|
从类型设置指向类型的指针。 |
|
从类型设置对类型的引用。 |
|
从类型设置 volatile 类型。 |
|
生成适当对齐的类型。 |
|
获取类型对齐。 |
|
为两种类型设置通用类型的实例。 |
|
为两种类型设置通用类型的实例。 |
|
设置非引用、非常量或非可变类型或者设置指向类型的指针。 |
|
设置某种类型或未定义类型的实例。 |
|
获取数组维度。 |
|
测试赋值时是否未引发该类型。 |
|
测试默认构造时是否未引发类型。 |
|
测试复制构造时是否未引发类型。 |
|
测试复制构造时是否未引发类型。 |
|
测试默认构造时是否未引发类型。 |
|
测试类型是否包含普通赋值。 |
|
测试类型是否包含普通的默认构造函数。 |
|
测试类型是否包含普通的复制构造函数。 |
|
测试类型是否包含普通的复制构造函数。 |
|
测试类型是否包含普通的默认构造函数。 |
|
测试类型是否包含普通的析构函数。 |
|
测试类型是否包含虚拟的析构函数。 |
|
测试类型是否为抽象类。 |
|
测试类型是否为算术型。 |
|
测试类型是否为数组。 |
|
测试一种类型是否是另一种类型的基类。 |
|
测试类型是否为类。 |
|
测试类型是否为非标量类型。 |
|
测试类型是否为常量类型。 |
|
测试一种类型是否可转换为另一种类型。 |
|
测试类型是否为空类。 |
|
测试类型是否为枚举。 |
|
测试类型是否为浮点。 |
|
测试类型是否为函数类型。 |
|
测试类型是否为 void 或算术型。 |
|
测试类型是否为整型。 |
|
测试类型是否为 lvalue 引用。 |
|
测试类型是否为指向成员函数的指针。 |
|
测试类型是否为指向成员对象的指针。 |
|
测试类型是否为指向成员的指针。 |
|
测试类型是否为对象类型。 |
|
测试类型是否为 POD。 |
|
测试类型是否为指针。 |
|
测试类型是否包含虚拟函数。 |
|
测试类型是否为引用。 |
|
测试类型是否为 rvalue 引用。 |
|
确定两个类型是否相同。 |
|
测试类型是否为标量类型。 |
|
测试类型是否为有符号的整数。 |
|
测试类型是否为标准布局。 |
|
测试类型是否为联合。 |
|
测试类型是否为无符号的整数。 |
|
测试类型是否为 void。 |
|
测试类型是否为可变型。 |
|
设置类型或大小大于或等于类型的有符号的最小类型。 |
|
设置类型或大小大于或等于类型的无符号的最小类型。 |
|
获取数组维度数。 |
|
从数组类型设置非数组类型。 |
|
从类型设置非常量类型。 |
|
从类型设置非常量/可变类型。 |
|
从数组类型设置元素类型。 |
|
从指向类型的指针设置类型。 |
|
从类型设置非引用类型。 |
|
从类型设置非可变类型。 |
|
从类型和值设置整数常量。 |
Typedef
保留包含值 false 的整数常量。 |
|
保留包含值 true 的整数常量。 |