<type_traits>

定义模板,可提供编译时常数,以提供有关它们的类型参数的属性信息。

#include <type_traits>

备注

A 类型的谓词是一个模板,使用一个或两个类型的参数。 当类型谓词如此,它公开派生时,直接或间接从true_type Typedef。 当类型谓词包含 false,它公开派生时,直接或间接从false_type Typedef

A 类型修饰符是采用一个或多个模板参数的模板,并有一个成员,如下:

  • typedef modified-type type;

A 类型查询是采用一个或多个模板参数的模板。 公开派生类型查询,直接或间接从integral_constant<std::size_t, value>。 它包含作为参数传递的值value。

Bb982077.collapse_all(zh-cn,VS.110).gif

add_const

使const类型的类型。

add_cv

使const/volatile类型的类型。

add_pointer

可以键入从类型的指针。

add_reference

使引用类型键入。

add_volatile

使volatile类型的类型。

aligned_storage

使适当对齐的类型。

alignment_of

获取类型的对齐方式。

common_type

使这两种常见类型的实例。

条件

使这两种常见类型的实例。

衰减

使非引用、 非常量或非易失性的类型,或使键入的指针。

enable_if

将未定义的类型或类型的实例。

扩展盘区

获取数组维度。

has_nothrow_assign

测试是否类型不会引发分配。

has_nothrow_constructor

测试是否默认构造函数不会引发该类型。

has_nothrow_copy

测试是否复制构造函数不会引发该类型。

has_nothrow_copy_constructor

如果类型不会复制构造函数引发的测试。

has_nothrow_default_constructor

如果类型没有默认构造函数引发的测试。

has_trivial_assign

测试是否具有普通分配的类型。

has_trivial_constructor

测试是否该类型具有一个常用的默认构造函数。

has_trivial_copy

测试是否该类型具有普通复制构造函数。

has_trivial_copy_constructor

测试类型都有一个简单的复制构造函数。

has_trivial_default_constructor

测试类型都有一个常用的默认构造函数。

has_trivial_destructor

测试是否具有用析构函数的类型。

has_virtual_destructor

测试是否具有虚拟析构函数的类型。

is_abstract

测试该类型是抽象类。

is_arithmetic

测试是否算术类型。

is_array

测试该类型是数组。

is_base_of

测试是否是一种类型的另一个。

is_class

测试该类型是类。

is_compound

测试该类型不是标量。

is_const

检测是否为常数的类型。

is_convertible

测试是否转换为另一种类型。

is_empty

测试该类型是一个空类。

is_enum

测试该类型是枚举。

is_floating_point

测试是否浮点类型。

is_function

测试该类型是一种函数类型。

is_fundamental

测试该类型是void或算术。

is_integral

测试该类型是不可或缺。

is_lvalue_reference

如果类型是测试lvalue的引用。

is_member_function_pointer

测试该类型是指向成员函数的指针。

is_member_object_pointer

测试该类型是指向成员对象的指针。

is_member_pointer

测试该类型是指向成员的指针。

is_object

测试该类型是对象类型。

is_pod

测试该类型是盒。

is_pointer

测试该类型是一个指针。

is_polymorphic

测试是否该类型具有虚函数。

is_reference

测试该类型是引用。

is_rvalue_reference

如果类型是测试rvalue的引用。

is_same

测试两种类型是否相同。

is_scalar

测试是否标量类型。

is_signed

测试该类型是一个有符号的整数。

is_standard_layout

如果类型的标准版式的测试。

is_union

该类型是一个联合测试。

is_unsigned

测试该类型是一个无符号的整数。

is_void

测试是否的类型为 void。

is_volatile

该类型是易失性测试。

make_signed

使键入或最小签名键入大于或等于输入的大小。

make_unsigned

使键入或最小的无符号键入大于或等于输入的大小。

排位

获取数组的维度数。

remove_all_extents

从数组类型将使非数组类型。

remove_const

从类型将使非 const 类型。

remove_cv

从类型将使非易失 const/类型。

remove_extent

可键入从数组类型的元素。

remove_pointer

使键入从键入的指针。

remove_reference

从类型将使非引用类型。

remove_volatile

从类型将使非易失性类型。

integral_constant

使整型常数的类型和值。

Bb982077.collapse_all(zh-cn,VS.110).gifTypedef

false_type

包含使用 false 值的整型常数。

true_type

包含 true 值的整型常数。

请参见

参考

<functional>