Type support (basic types, RTTI, type traits)

来自cppreference.com
< cpp


 
 
实用工具库
类型的支持 (basic types, RTTI, type traits)
动态内存管理
错误处理
程序实用工具
可变参数函数
日期和时间
函数对象
initializer_list(C++11)
bitset
hash(C++11)
关系运算符
原文:
Relational operators
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
rel_ops::operator!=
rel_ops::operator>
rel_ops::operator<=
rel_ops::operator>=
双和元组
原文:
Pairs and tuples
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
pair
tuple(C++11)
piecewise_construct_t(C++11)
piecewise_construct(C++11)
掉期,远期和移动
原文:
Swap, forward and move
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
swap
forward(C++11)
move(C++11)
move_if_noexcept(C++11)
declval(C++11)
 
类型的支持
基本类型
原文:
Basic types
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
基本类型
固定宽度的整数类型 (C++11)
nullptr_t(C++11)
offsetof
NULL
数值范围内
原文:
Numeric limits
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
numeric_limits
C数字限制接口
运行时类型信息
原文:
Runtime type information
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
type_info
type_index(C++11)
类型特征
原文:
Type traits
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
初级型两类
原文:
Primary type categories
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
is_void(C++11)
is_array(C++11)
is_pointer(C++11)
is_enum(C++11)
is_union(C++11)
is_class(C++11)
is_function(C++11)
is_object(C++11)
is_scalar(C++11)
is_compound(C++11)
is_integral(C++11)
is_floating_point(C++11)
is_fundamental(C++11)
is_arithmetic(C++11)
is_reference(C++11)
is_lvalue_reference(C++11)
is_rvalue_reference(C++11)
is_member_pointer(C++11)
is_member_object_pointer(C++11)
is_member_function_pointer(C++11)
类型属性
原文:
Type properties
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
is_const(C++11)
is_volatile(C++11)
is_pod(C++11)
is_empty(C++11)
is_polymorphic(C++11)
is_abstract(C++11)
is_trivial(C++11)
is_trivially_copyable(C++11)
is_standard_layout(C++11)
is_literal_type(C++11)
is_signed(C++11)
is_unsigned(C++11)
支持的操作
原文:
Supported operations
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
is_constructible
is_trivially_constructible
is_nothrow_constructible
(C++11)
(C++11)
(C++11)
is_default_constructible
is_trivially_default_constructible
is_nothrow_default_constructible
(C++11)
(C++11)
(C++11)
is_copy_constructible
is_trivially_copy_constructible
is_nothrow_copy_constructible
(C++11)
(C++11)
(C++11)
is_move_constructible
is_trivially_move_constructible
is_nothrow_move_constructible
(C++11)
(C++11)
(C++11)
is_assignable
is_trivially_assignable
is_nothrow_assignable
(C++11)
(C++11)
(C++11)
is_copy_assignable
is_trivially_copy_assignable
is_nothrow_copy_assignable
(C++11)
(C++11)
(C++11)
is_move_assignable
is_trivially_move_assignable
is_nothrow_move_assignable
(C++11)
(C++11)
(C++11)
is_destructible
is_trivially_destructible
is_nothrow_destructible
(C++11)
(C++11)
(C++11)
has_virtual_destructor(C++11)
关系和属性查询
原文:
Relationships and property queries
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
is_same(C++11)
is_base_of(C++11)
is_convertible(C++11)
alignment_of(C++11)
rank(C++11)
extent(C++11)
类型的修改
原文:
Type modifications
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
remove_cv
remove_const
remove_volatile
(C++11)
(C++11)
(C++11)
add_cv
add_const
add_volatile
(C++11)
(C++11)
(C++11)
make_signed(C++11)
make_unsigned(C++11)
remove_reference(C++11)
add_lvalue_reference
add_rvalue_reference
(C++11)
(C++11)
remove_pointer(C++11)
add_pointer(C++11)
remove_extent(C++11)
remove_all_extents(C++11)
类型转换
原文:
Type transformations
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
aligned_storage(C++11)
aligned_union(C++11)
decay(C++11)
enable_if(C++11)
conditional(C++11)
common_type(C++11)
underlying_type(C++11)
result_of(C++11)
键入特征常数
原文:
Type trait constants
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
integral_constant(C++11)
 

目录

[编辑] 基本类型

[编辑] 语言定义的基本类型

[编辑] 其他的基本类型和宏

{{dsc typedef | cpp/types/nullptr_t |语法常量nullptr
在头文件 <cstddef> 中定义
sizeof运算符返回的无符号整数类型
(typedef) [edit]
在两个指针相减时返回的有符号整数类型
(typedef) [edit]
编译器定义的空指针常量
(常量宏) [edit]
(C++11)
内存对齐需求不小于任何基本类型的POD类型
(typedef) [edit]
标准布局类型的成员相对类型起始地址的字符偏移量
(函数宏) [edit]
在头文件 <cstdbool> 中定义
__bool_true_false_are_defined
(C++11)
与标准C兼容的宏,展开成整数常量1
(常量宏)
在头文件 <cstdalign> 中定义
__alignas_is_defined
(C++11)
与标准C兼容的宏,展开成整数常量1
(常量宏)

[编辑] 固定宽度的整数类型 (C++11 起)

[编辑] numeric_limits

在头文件 <limits> 中定义
提供查询所有基础数字类型属性的接口。
(类模板) [edit]

[编辑] 标准C数字极值接口

[编辑] 运行时类型识别

包含由编译器生成的类型信息。
这是由typeid的运算符返回的类。
(类) [edit]
(C++11)
针对type_info对象的一个包装,可以用作关联容器和无序关联容器的索引。
(类) [edit]
调用typeid运算符如果有一个参数为空时抛出的异常。
(类) [edit]
错误的dynamic_cast表达式抛出的异常,例如,引用类型转换失败会抛出此异常。
(类) [edit]

[编辑] 类型特征

类型特征定义了一个基于模板的编译时接口用于查询或修改类型属性.

[编辑] 类型属性

在头文件 <type_traits> 中定义
基本类型分类
(C++11)
检查是否是void
(类模板) [edit]
(C++11)
检查类型是否为整型
(类模板) [edit]
检查类型是否是浮点类型
(类模板) [edit]
(C++11)
检查类型是否是数组类型
(类模板) [edit]
(C++11)
检查类型是否是枚举类型
(类模板) [edit]
(C++11)
检查是否是union类型
(类模板) [edit]
(C++11)
检查是否是除union以外的对象类型
(类模板) [edit]
(C++11)
检查是否为函数类型
(类模板) [edit]
检查是否是指针类型
(类模板) [edit]
检查是不是一个“左值引用”类型。
(类模板) [edit]
检查是否是“右值引用”类型。
(类模板) [edit]
检查是否是一个指向非静态成员变量的指针类型
(类模板) [edit]
检查是否是指向非静态成员函数的指针类型
(类模板) [edit]
复合类型分类
(C++11)
检查是否是基础类型
(类模板) [edit]
(C++11)
检查是不是数字类型
(类模板) [edit]
(C++11)
检查是否是标量类型
(类模板) [edit]
(C++11)
检查是否是对象类型
(类模板) [edit]
(C++11)
检查是否是一个复合类型
(类模板) [edit]
(C++11)
检查是否是“左值引用”或“右值引用”
(类模板) [edit]
检查是否是指向非静态函数或成员的指针类型
(类模板) [edit]
类型属性分类
(C++11)
检查类型是否包含const修饰符
(类模板) [edit]
(C++11)
检查类型是否包含volatile修饰符
(类模板) [edit]
(C++11)
检查是否是标量类型
(类模板) [edit]
检查类型是否可以通过简单拷贝内存完成拷贝
(类模板) [edit]
检查是否是一个标准布局类型
(类模板) [edit]
(C++11)
检查是否是传统C数据结构(POD)类型
(类模板) [edit]
(C++11)
检查类型是否是名字常量
(类模板) [edit]
(C++11)
检查是否是除union外的对象类型,且没有包含任何成员
(类模板) [edit]
(C++11)
检查是否是一个多态对象
(类模板) [edit]
(C++11)
检查是否是一个抽象对象类型
(类模板) [edit]
(C++11)
检查是否是有符号数字类型
(类模板) [edit]
(C++11)
检查是否是无符号数字类型
(类模板) [edit]
支持的操作
检查对象是否实现了特定参数的构造函数
(类模板) [edit]
检查类型是否使用默认构造函数
(类模板) [edit]
检查对象是否声明了拷贝构造函数
(类模板) [edit]
检查对象是否声明了移动构造函数
(类模板) [edit]
检查对象是否重载了特定参数的赋值运算符
(类模板) [edit]
检查对象是否重载了拷贝赋值运算符
(类模板) [edit]
检查对象是否重载了移动赋值运算符
(类模板) [edit]
检查对象是否声明了析构函数
(类模板) [edit]
检查对象是否声明了虚析构函数
(类模板) [edit]
属性查询
(C++11)
获取类型的最小对齐字节数
(类模板) [edit]
(C++11)
获取数组类型的维度
(类模板) [edit]
(C++11)
获取指定维度的数据类型大小
(类模板) [edit]
类型之间的关系
(C++11)
检查两个类型是否相同
(类模板) [edit]
(C++11)
检查一个类型是否派生自另一个类型
(类模板) [edit]
(C++11)
检查一个类型是否可以被转换成另一个类型
(类模板) [edit]

[编辑] 修饰类型

修饰类型的模板根据所使用的模板参数产生新类型。新类型可以通过访问成员类型type获得。

在头文件 <type_traits> 中定义
常量-易变量修饰符
(C++11)
(C++11)
(C++11)
去除类型的const或/和volatile修饰符
(类模板) [edit]
(C++11)
(C++11)
(C++11)
为类型添加const或/和volatile修饰符
(类模板) [edit]
参考文献
移除类型的引用修饰符
(类模板) [edit]
为类型增加“左值”或“右值”引用修饰符
(类模板) [edit]
指针
(C++11)
移除类型的指针修饰符
(类模板) [edit]
(C++11)
为类型添加指针修饰符
(类模板) [edit]
数字符号修改器
(C++11)
将整数类型转换成对应的有符号整数类型
(类模板) [edit]
(C++11)
将整数类型转换成对应的无符号整数类型
(类模板) [edit]
数组
(C++11)
删除数组类型的一个给定维度
(类模板) [edit]
移除数组类型所有维度
(类模板) [edit]

[编辑] 其他转换

在头文件 <type_traits> 中定义
(C++11)
定义类型在未初始化时需要的内存空间大小
(类模板) [edit]
(C++11)
定义所有给定类型在未初始化时需要的最大内存空间大小
(类模板) [edit]
(C++11)
将类型变换成以值形式传递给函数时使用的类型
(类模板) [edit]
(C++11)
根据编译期布尔常量隐藏一种函数重载或模板特化
(类模板) [edit]
(C++11)
根据编译期布尔常量返回两种类型的其中一个
(类模板) [edit]
(C++11)
推导出混合模式数学表达式计算结果的类型
(类模板) [edit]
(C++11)
获取枚举常量对应的整数类型
(类模板) [edit]
(C++11)
推导函数表达式的返回值类型
(类模板) [edit]

[编辑] 工具类

在头文件 <type_traits> 中定义
可指定类型的编译期常量
(类模板) [edit]

std::integral_constant提供了针对bool类型的两个模板特化

在头文件 <type_traits> 中定义
声明 Definition
true_type std::integral_constant<bool, true>
false_type std::integral_constant<bool, false>