工具库

来自cppreference.com
< cpp

C++ 包含了各种工具库,提供了诸如位计数部分函数应用的功能。这些库大致可以分为两类:

  • 语言支持库
  • 通用库

目录

[编辑] 语言支持

语言支持库中所提供的类和函数与语言特性紧密相关,用以支持语言中的一些常见的惯用法。

[编辑] 类型支持

基本类型(如 std::size_tstd::nullptr_t )、 RTTI (如 std::type_info )、类型特性(如 std::is_integralstd::rank )。

[编辑] 动态内存管理

智能指针(如 std::shared_ptr )、分配器(如 std::allocator )、C 风格的内存管理(如 std::malloc )。

[编辑] 错误处理

异常(如 std::exceptionstd::logic_error )、断言(如 assert )。

[编辑] initializer_list

允许使用初始化器列表语法初始化非聚合体类型
(类模板) [编辑]

[编辑] 变参数函数

支持接受任意数量参数的函数(例如通过 va_startva_argva_end )。

实现属性

头文件 <version> 提供关于 C++ 标准库的实现依赖信息(例如版本号和发行日期)。它亦定义特性测试宏

(C++20 起)

[编辑] 通用工具

[编辑] 程序工具

终止(如 std::abortstd::atexit )、环境(如 std::system )、信号(如 std::raise )。

[编辑] 日期和时间

时间跟踪(如 std::chrono::time_pointstd::chrono::duration ), C 风格日期和时间(如 std::timestd::clock )。

[编辑] bitset

实现常量长度的位数组
(类) [编辑]

[编辑] 函数对象

部分函数应用(如 std::bind )及相关工具:用于绑定的工具,如 std::refstd::placeholders 、多态函数包装器: std::function 、预定义函数对象(如 std::plusstd::equal_to )、方法到函数转换器 std::mem_fn

[编辑] optional 、 variant 与 any

定义于头文件 <optional>
(C++17 起)
可能或可能不保有一个对象的包裹器
(类模板) [编辑]
定义于头文件 <variant>
(C++17 起)
有类型安全辨别的联合体
(类模板) [编辑]
定义于头文件 <any>
(C++17 起)
保有任何可复制构造 (CopyConstructible) 类型实例的对象。
(类) [编辑]
定义于头文件 <utility>
原位构造标签
(类模板) [编辑]

[编辑] pair 与 tuple

实现二元组,即一对值
(类模板) [编辑]
(C++11)
实现固定大小的容器,它保有类型可以相异的元素
(类模板) [编辑]
(C++17)
以参数的元组调用函数
(函数模板) [编辑]
以参数的元组构造对象
(函数模板) [编辑]
用于为逐片构造选择正确函数重载的标签类型
(类) [编辑]
用于为逐片构造的函数消歧义的 piecewise_construct_t 类型的对象
(常量) [编辑]
实现编译时整数数列
(类模板) [编辑]

[编辑] swap 、 forward 与 move

交换两个对象的值
(函数模板) [编辑]
(C++14)
以新值替换参数,并返回其先前值
(函数模板) [编辑]
(C++11)
转发函数参数
(函数模板) [编辑]
(C++11)
获得右值引用
(函数模板) [编辑]
若移动构造函数不抛出则获得右值引用
(函数模板) [编辑]

[编辑] 类型运算

定义于头文件 <utility>
(C++11)
在不求值语境中获取到其参数的引用
(函数模板) [编辑]
(C++17)
获得到其参数的 const 引用
(函数模板) [编辑]
定义于头文件 <new>
(C++17)
指针优化屏障
(函数模板) [编辑]

[编辑] 关系运算符与比较

定义于头文件 <compare>
三路比较的结果类型,仅支持相等/不相等,且不可替换
(类) [编辑]
三路比较的结果类型,仅支持相等/不相等,且可替换
(类) [编辑]
三路比较的结果类型,支持所有 6 种运算符,不可替换,并允许不可比较值
(类) [编辑]
三路比较的结果类型,支持所有 6 种运算符且不可替换
(类) [编辑]
三路比较的结果类型,支持所有 6 种运算符且可替换
(类) [编辑]
具名比较函数
(函数) [编辑]
所有给定类型所能转换到的最强比较类别
(类模板) [编辑]
进行三路比较并产生 std::strong_ordering 类型结果
(函数模板) [编辑]
进行三路比较并产生 std::weak_ordering 类型结果
(函数模板) [编辑]
进行三路比较并产生 std::partial_ordering 类型结果
(函数模板) [编辑]
进行三路比较并产生 std::strong_equality 类型结果
(函数模板) [编辑]
进行三路比较并产生 std::weak_equality 类型结果
(函数模板) [编辑]
定义于头文件 <utility>
定义于命名空间 std::rel_ops
自动生成基于用户定义的 operator==operator< 的比较运算符
(函数模板) [编辑]

[编辑] 初等字符串转换

除了 C++ I/O 库、 C I/O 库、 C++ 字符串转换函数C 字符串转换函数提供的复杂的本地环境依赖的分析器和格式化器外,头文件 <charconv> 提供对于算术类型的轻量、不依赖本地环境、不分配、不抛出、仅供 ASCII 的分析器和格式化器。

定义于头文件 <charconv>
(C++17)
转换整数或浮点值到字符序列
(函数) [编辑]
转换字符序列到整数或浮点值
(函数) [编辑]
指定 std::to_charsstd::from_chars 所用的格式
(枚举) [编辑]

[编辑] 哈希支持

(C++11)
哈希函数对象
(类模板) [编辑]