C++ type_traits 头

  • 定义

    type_traits 定义了一系列类以获得有关编译时的类型信息。
    标头包含:
    • 助手类 :帮助创建编译时常量的标准类。
    • 类型特征:以编译时常量值的形式获取类型特征的类。
    • 类型转换:类通过将特定的转换应用于现有类型来获取新类型。
    类型的基本特征是可以对其进行分类的类别。 这是有关这些类别如何重叠的图表:
      主要类别 复合类别
    fundamental void      
    std::nullptr_t   scalar object
    integral arithmetic
    floating point
    compound pointer  
    member object pointer member pointer
    member function pointer
    enum  
    union    
    class*    
    array    
    l-value reference reference    
    r-value reference    
    function      
  • 函数/类/模板 描述
    integral_constant 积分常数(类模板)
    true_type 真型(类)
    false_type 假类型(类)
    is_array 是数组(类模板)
    is_class 是非联盟类(类模板)
    is_enum 是枚举(类模板)
    is_floating_point 是浮点数(类模板)
    is_function 是函数(类模板)
    is_integral 是不可分割的(类模板)
    is_lvalue_reference 是左值引用(类模板)
    is_member_function_pointer 是成员函数指针(类模板)
    is_member_object_pointer 是成员对象指针(类模板)
    is_pointer 是指针(类模板)
    is_rvalue_reference 是右值引用(类模板)
    is_union 是工会(类模板)
    is_void 是空的(类模板)
    is_arithmetic 是算术类型(类模板)
    is_compound 是复合类型(类模板)
    is_fundamental 是基本类型(类模板)
    is_member_pointer 是成员指针类型(类模板)
    is_object 是对象类型(类模板)
    is_reference 是引用类型(类模板)
    is_scalar 是标量类型(类模板)
    is_abstract 是抽象类(类模板)
    is_const 是const限定的(类模板)
    is_empty 是空类(类模板)
    is_literal_type 是文字类型(类模板)
    is_pod 是POD类型(类模板)
    is_polymorphic 是多态的(类模板)
    is_signed 是签名类型(类模板)
    is_standard_layout 是标准布局类型(类模板)
    is_trivial 是琐碎的类型(类模板)
    is_trivially_copyable 可轻松复制(类模板)
    is_unsigned 是无符号类型(类模板)
    is_volatile 符合挥发性(类模板)
    has_virtual_destructor 具有虚拟析构函数(类模板)
    is_assignable 可分配(类模板)
    is_constructible 是可构造的(类模板)
    is_copy_assignable 副本是否可分配(类模板)
    is_copy_constructible 可复制构造(类模板)
    is_destructible 可破坏的(类模板)
    is_default_constructible 是默认可构造的(类模板)
    is_move_assignable 可移动分配(类模板)
    is_move_constructible 可移动构造(类模板)
    is_trivially_assignable 可分配的(类模板)
    is_trivially_constructible 易于构造(类模板)
    is_trivially_copy_assignable 简单复制可分配(类模板)
    is_trivially_copy_constructible 可以简单地复制构造(类模板)
    is_trivially_destructible 可轻易破坏的(类模板)
    is_trivially_default_constructible 默认情况下是可构造的(类模板)
    is_trivially_move_assignable 轻而易举地分配(类模板)
    is_trivially_move_constructible 可以轻松构造(类模板)
    is_nothrow_assignable 可分配,不抛出异常(类模板)
    is_nothrow_constructible 可构造,不抛出异常(类模板)
    is_nothrow_copy_assignable 是否可分配复制不引发异常(类模板)
    is_nothrow_copy_constructible 复制构造是否可引发任何异常(类模板)
    is_nothrow_destructible 不可破坏(类模板)
    is_nothrow_default_constructible 是默认可构造的,不抛出异常(类模板)
    is_nothrow_move_assignable 是否可移动分配不引发异常(类模板)
    is_nothrow_move_constructible 可移动构造是否抛出异常(类模板)
    is_base_of 是(类模板)的基类
    is_convertible 可转换(类模板)
    is_same 是相同类型(类模板)
    alignment_of (类模板)的对齐
    extent 数组维度范围(类模板)
    rank 数组等级(类模板)
    add_const 添加const资格(类模板)
    add_cv 添加const volatile资格(类模板)
    add_volatile 添加易变的资格(类模板)
    remove_const 删除const资格(类模板)
    remove_cv 删除简历资格(课程模板)
    remove_volatile 删除易变的资格(类模板)
    add_pointer 添加指针(类模板)
    add_lvalue_reference 添加左值引用(类模板)
    add_rvalue_reference 添加右值引用(类模板)
    decay 衰减类型(类模板)
    make_signed 签名(类模板)
    make_unsigned 设为未签名(类模板)
    remove_all_extents 删除所有数组范围(类模板)
    remove_extent 删除数组范围(类模板)
    remove_pointer 删除指针(类模板)
    remove_reference 删除引用(类模板)
    underlying_type 枚举的基础类型(类模板)
    aligned_storage 对齐的存储(类模板)
    aligned_union 对齐的联合(类模板)
    common_type 普通类型(类模板)
    conditional 条件类型(类模板)
    enable_if 如果满足条件则启用类型(类模板)
    result_of 通话结果(类模板)