类型支持(基本类型、RTTI、类型特性)

来自cppreference.com
< cpp
 
 
工具库
类型支持(基本类型、RTTI、类型特性)
动态内存管理
错误处理
程序工具
变参数函数
日期与时间
函数对象
(C++11)
关系运算符
optionalanyvariant (C++17)
pair与tuple
(C++11)
(C++17)
swap、forward与move
(C++14)
(C++11)
(C++11)
初等字符串转换
(C++17)
(C++17)
类型运算
(C++11)
(C++17)
 
类型支持
基本类型
基础类型
定宽整数类型 (C++11)
数值极限
C 数值极限接口
运行时类型信息
类型特性
类型类别
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
类型属性
(C++11)
(C++11)
(C++11)
(C++14)
(C++11)
(C++11)(C++17中过时)
(C++11)
类型特性常量
元函数
(C++17)
受支持操作
关系与属性查询
(C++11)
(C++11)
(C++11)
(C++11)
类型修改
(C++11)
(C++11)
(C++11)
类型变换
(C++11)
(C++11)
(C++17)
(C++11)(C++17中过时)
(C++17)
 

(类型系统综述可参阅类型

目录

[编辑] 基本类型

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

[编辑] 附加性基本类型及宏

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

[编辑] 定宽整数(C++11 起)

[编辑] 数值极限

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

[编辑] C数值极限接口

[编辑] 运行时类型识别

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

[编辑] 类型特性(C++11 起)

类型特性定义一个编译时基于模板的结构,以查询或修改类型的属性。

试图特化定义于<type_traits>头文件的模板导致未定义行为,除了std::common_type可被依照其所描述特化。

定义于<type_traits>头文件的模板可以用不完整类型实例化,除非另外有指定,尽管通常禁止以不完整类型实例化标准库模板。

[编辑] 类型属性

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

[编辑] 类型修改

类型修改模板以应用修改到模板参数创建新类型定义。结果类型可以通过type成员typedef访问。

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

[编辑] 杂项变换

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

[编辑] 特性上的运算

定义于头文件 <type_traits>
变参数的逻辑与元函数
(类模板) [编辑]
变参数的逻辑或元函数
(类模板) [编辑]
(C++17)
逻辑非元函数
(类模板) [编辑]

[编辑] 帮助类

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

标准提供二个std::integral_constant对于类型bool的特化:

定义于头文件 <type_traits>
类型 定义
true_type std::integral_constant<bool, true>
false_type std::integral_constant<bool, false>

[编辑] 参阅

类型支持库C 文档