C++
编译器支持
自立实现与有宿主实现
语言
标准库
标准库标头
具名要求
功能特性测试宏
(C++20)
语言支持库
概念库
(C++20)
元编程库
(C++11)
诊断库
通用工具库
字符串库
容器库
迭代器库
范围库
(C++20)
算法库
数值库
本地化库
输入/输出库
文件系统库
(C++17)
正则表达式库
(C++11)
并发支持库
(C++11)
技术规范
符号索引
外部库
标准库标头
注:修订记号中的反斜杠 '/' 意味着此标头被弃用和/或被移除。
语言支持
(C++20)
(C++11)
(C++23)
(C++20)
(C++11)
(C++20)
(C++20)
概念
(C++20)
诊断
(C++23)
(C++11)
内存管理
(C++17)
(C++11)
元编程
(C++11)
(C++11)
通用工具
(C++11)
(C++17)
(C++17)
(C++17)
(C++23)
(C++11)
(C++17)
(C++17)
(C++20)
(C++20)
字符串
(C++17)
(C++11)
容器
(C++11)
(C++11)
(C++11)
(C++11)
(C++23)
(C++23)
(C++20)
(C++23)
迭代器
范围
(C++20)
(C++23)
算法
数值
(C++11)
(C++11)
(C++20)
日期时间
(C++11)
本地化
(C++11/17)
输入/输出
(C++23)
(C++23)
(C++20)
(C++17)
(C++11)
(C++98/)
正则表达式
并发支持
(C++20)
(C++11)
(C++11)
(C++23)
(C++11)
(C++14)
(C++11)
(C++20)
(C++20)
(C++20)
(C++11)
C 兼容
(C++11/17/20)
(C++11/17/20)
(C++11/17/20)
(C++11/17/20)
(C++20
前)
C++ 标准库的接口由下列标头的汇集定义。
概念库
(C++20)
基础库概念
协程库
(C++20)
协程支持库
工具库
(C++17)
std::any
类
std::bitset
类模板
(C++11)
C++ 时间工具
(C++20)
三路比较运算符支持
保存(及跳转)到执行环境的宏(与函数)
信号管理的函数与宏常量
变长实参列表的处理
标准宏与 typedef
通用工具:程序控制、动态内存分配、随机数、排序与搜索
C
风格日期/时间工具
(C++23)
std::expected 类模板
函数对象、函数调用、绑定操作及引用包装
(C++11)
std::initializer_list
类模板
(C++17)
std::optional
类模板
(C++20)
提供获得源码位置的手段
(C++11)
std::tuple
类模板
(C++11)
编译时类型信息
(C++11)
std::type_index
运行时类型信息工具
多种工具组件
(C++17)
std::variant
类模板
(C++20)
提供依赖实现的库信息
动态内存管理
高层内存管理工具
(C++17)
多态分配器与内存资源
低层内存管理工具
(C++11)
嵌套分配器类
数值极限
浮点类型的极限
(C++11)
格式化宏、
intmax_t 与 uintmax_t 数学与转换
整数类型的极限
(C++11)
定宽整数类型与其他类型的极限
查询算术类型属性的一致方式
(C++23)
可选的拓展浮点类型
错误处理
比较其实参与零的条件编译宏
含有最后一次错误号的宏
异常处理工具
(C++23)
栈踪库
标准异常对象
(C++11)
定义 std::error_code
,依赖平台的错误码
字符串库
确定窄字符类别的函数
(C++17)
std::to_chars 与 std::from_chars
多种窄字符串处理函数
(C++11)
C 风格 Unicode 字符转换函数
多种宽与多字节字符串处理函数
确定宽字符的类别的函数
(C++20)
格式化库,包含 std::format
std::basic_string
类模板
(C++17)
std::basic_string_view
类模板
容器库
(C++11)
std::array
容器
std::deque
容器
(C++23)
std::flat_map 和 std::flat_multimap 容器适配器
(C++23)
std::flat_set 和 std::flat_multiset 容器适配器
(C++11)
std::forward_list
容器
std::list
容器
std::map
与 std::multimap
关联容器
(C++23)
std::mdspan 视图
std::queue
与 std::priority_queue
容器适配器
std::set
与 std::multiset
关联容器
(C++20)
std::span 视图
std::stack
容器适配器
(C++11)
std::unordered_map
与 std::unordered_multimap
无序关联容器
(C++11)
std::unordered_set
与 std::unordered_multiset
无序关联容器
std::vector
容器
迭代器库
范围迭代器
范围库
(C++20)
范围访问、元件、要求、工具及适配器
算法库
在范围上操作的算法
(C++17)
并行版本算法的预定义执行策略
数值库
(C++20)
位操纵函数
(C++11)
浮点环境访问函数
常用数学函数
复数类型
(C++20)
数学常数
范围中的值上的数值运算
(C++11)
随机数生成器与分布
(C++11)
编译时有理数算术
表示和操纵值的数组的类
本地化库
C 本地化工具
(C++11)(C++17
中弃用)
Unicode 转换设施
本地化工具
输入/输出库
C 风格输入输出函数
std::basic_fstream
、 std::basic_ifstream
、 std::basic_ofstream
类模板及数个 typedef
格式化输入与输出的辅助函数
std::ios_base
类、 std::basic_ios
类模板与数个 typedef
输入/输出库中所有类的前置声明
数个标准流对象
std::basic_istream
类模板与数个 typedef
std::basic_ostream
、 std::basic_iostream
类模板与数个 typedef
(C++23)
格式化输出库,包含 std::print
(C++23)
std::basic_spanstream、 std::basic_ispanstream、
std::basic_ospanstream 类模板与
typedef
std::basic_stringstream
、 std::basic_istringstream
、 std::basic_ostringstream
类模板与数个 typedef
std::basic_streambuf
类模板
(C++98
中弃用)
std::strstream
、 std::istrstream
、 std::ostrstream
(C++20)
std::basic_osyncstream 、 std::basic_syncbuf 及 typedef
文件系统库
(C++17)
std::path 类与支持函数
正则表达式库
(C++11)
支持正则表达式处理的类、算法及迭代器
原子操作库
(C++11)
原子操作库
线程支持库
(C++20)
屏障
(C++11)
线程等待条件
(C++11)
异步计算元件
(C++20)
闩
(C++11)
互斥元件
(C++20)
信号量
(C++14)
共享互斥元件
(C++20)
std::jthread 的停止记号
(C++11)
std::thread
类与支持函数
C
兼容标头
对于一些形式为 xxx.h 的 C 标准库标头,C++ 标准库同时包含同名的标头和拥有形式
cxxx 的标头(所有有意义的 cxxx 标头列于上方)。形为
xxx.h 的标头有意仅用于互操作。C++ 源文件有可能需要包含这些标头之一以作为合法的 ISO
C。不有意同样成为合法 ISO C 的源文件不应使用任何 C 标头。
除了 complex.h 这一例外,C++
标准库中包含的每个 xxx.h 标头都将其对应的 cxxx
中本应置于 std
命名空间中的每个名字放在全局命名空间中。
允许这些标头也在 std
命名空间中声明同样的名字,而且允许对应的 cxxx 标头也在全局命名空间中声明同样的名字:包含
std::malloc,亦可提供
::malloc。包含
std::malloc。这甚至适用于并非
C 标准库一部分的函数和函数重载。
注:xxx.h 标头在 C++98 中弃用并在 C++23 中解除弃用。对纯 C++
代码不鼓励使用这些标头,但它们不会在将来被移除。
表现同
表现如同将每个来自
的名字置于全局命名空间
表现同
(C++11)
表现如同将每个来自
的名字置于全局命名空间
表现同
(C++11)
表现如同将每个来自
的名字置于全局命名空间
表现同
表现如同将每个来自
的名字置于全局命名空间
表现如同将每个来自
的名字置于全局命名空间,除了数学特殊函数的名字
表现如同将每个来自
的名字置于全局命名空间
表现如同将每个来自
的名字置于全局命名空间
表现如同将每个来自
的名字置于全局命名空间
表现如同将每个来自
的名字置于全局命名空间,除了 std::byte
与相关函数的名字
(C++11)
表现如同将每个来自
的名字置于全局命名空间
表现如同将每个来自
的名字置于全局命名空间
表现如同将每个来自
的名字置于全局命名空间
表现如同将每个来自
的名字置于全局命名空间
表现如同将每个来自
的名字置于全局命名空间
(C++11)
表现如同将每个来自
的名字置于全局命名空间
表现如同将每个来自
的名字置于全局命名空间
表现如同将每个来自
的名字置于全局命名空间
特殊
C 兼容标头
标头
xxx.h 标头,不提供对应的
(C++23)
定义 _Atomic 并提供 C 标准库中的对应组件
空的 C
标头
标头
和
C 标准库的内容,而且不过是包含其他来自 C++ 标准库的标头。
(C++11)(C++17
中弃用)(C++20
中移除)
简单地包含头文件
(C++11)
简单地包含头文件
(C++11)(C++17
中弃用)(C++20
中移除)
简单地包含头文件
与
:等价于 C 头文件 tgmath.h 的重载已于前述头文件提供
(C++11)
简单地包含头文件
与
无意义的
C 标头
标头
中无意义,因为它们在 C 中提供的宏是 C++ 的关键词。
(C++20
中移除)
空头文件。 C 中
iso646.h 中出现的宏是 C++
中的关键词
(C++11)(C++17
中弃用)(C++20
中移除)
定义一个兼容性宏常量
(C++11)(C++17
中弃用)(C++20
中移除)
定义一个兼容性宏常量
无效果
(C++11)
定义一个兼容性宏常量
(C++11)
定义一个兼容性宏常量
不受支持的
C 标头
C++ 不包含 C 标头
(C++23
前)
和
实验性库
C++ TR/TS
也定义了数个标头的汇集。
参阅