Boost 库文档
按以下排序
按类别
字符串和文本处理
- CharConv: C++11 中 <charconv> 的实现。
- Convert: 可扩展且可配置的类型转换框架。
- Format: format 库提供了一种类型安全的机制,用于根据 printf 样式的格式字符串格式化参数。
- Iostreams: Boost.IOStreams 提供了一个用于定义流、流缓冲区和 I/O 过滤器的框架。
- Lexical Cast: 通用文字文本转换,例如将 int 表示为字符串,反之亦然。
- Locale: 为 C++ 提供本地化和 Unicode 处理工具。
- Regex: 正则表达式库。
- Spirit: LL 解析器框架将解析器直接表示为内联 C++ 中的 EBNF 语法。
- Spirit Classic: LL 解析器框架将解析器直接表示为内联 C++ 中的 EBNF 语法。
- Spirit Repository: Spirit 库是一个社区项目,它收集了 Qi 解析器和 Karma 生成器的不同可重用组件(基元、指令、语法等)。
- Static String: 固定容量的动态大小字符串。
- String Algo: 字符串算法库。
- String View: 字符串视图模板。
- Tokenizer: 将字符串或其他字符序列分解为一系列标记。
- Wave: Boost.Wave 库是标准符合且高度可配置的 C99/C++ 预处理器功能实现,它隐藏在一个易于使用的迭代器接口后面。
- Xpressive: 可以写成字符串或表达式模板的正则表达式,这些表达式可以利用上下文无关语法的强大功能,递归地引用彼此和自身。
容器
- Array: 符合 STL 的常数大小数组容器包装器。
- Bimap: 用于 C++ 的双向映射库。使用 Boost.Bimap,您可以创建关联容器,其中两种类型都可以用作键。
- Circular Buffer: 符合 STL 的容器,也称为环形缓冲区或循环缓冲区。
- Container: 标准库容器和扩展。
- Dynamic Bitset: dynamic_bitset 类表示一组位。它通过 operator[] 提供对单个位值的访问,并提供可以应用于内置整数的所有按位运算符,例如 operator& 和 operator<<。集合中的位数在运行时通过 dynamic_bitset 构造函数的参数指定。
- GIL: (C++14) 通用图像库
- Graph: BGL 图接口和图组件是通用的,与标准模板库 (STL) 一样。
- GraphParallel: PBGL 图接口和图组件是通用的,与标准模板库 (STL) 一样。
- ICL: 区间容器库,区间集合和映射以及关联值的聚合
- Intrusive: 侵入式容器和算法。
- JSON: C++11 中的 JSON 解析、序列化和 DOM。
- Multi-Array: Boost.MultiArray 提供了通用的 N 维数组概念定义和该接口的常用实现。
- Multi-Index: Boost Multi-index 容器库提供了一个名为 multi_index_container 的类模板,它允许构建维护一个或多个索引的容器,这些索引具有不同的排序和访问语义。
- Pointer Container: 用于存储堆分配的多态对象的容器,以简化面向对象编程。
- PolyCollection: 多态对象的快速容器。
- Property Map: 定义将键对象映射到值对象的接口的概念。
- Property Map (Parallel): 与并行图一起使用的属性映射的并行扩展。
- Property Tree: 一种树形数据结构,特别适合存储配置数据。
- String Ref: 字符串视图模板。
- String View: 字符串视图模板。
- Unordered: 无序关联容器。
- URL: C++11 中的 URL 解析。
- Variant: 安全、通用、基于堆栈的区分联合容器。
- Variant2: std::variant 的永不为空值、强保证实现。
迭代器
- GIL: (C++14) 通用图像库
- Graph: BGL 图接口和图组件是通用的,与标准模板库 (STL) 一样。
- GraphParallel: PBGL 图接口和图组件是通用的,与标准模板库 (STL) 一样。
- Iterator: Boost 迭代器库包含两个部分。第一个部分是扩展 C++ 标准迭代器要求的概念系统。第二个部分是基于这些扩展的概念构建迭代器的组件框架,包括几个有用的迭代器适配器。
- Operators: 简化算术类和迭代器中运算符定义的模板。
- Tokenizer: 将字符串或其他字符序列分解为一系列标记。
算法
- Algorithm: 一组有用的通用算法。
- Foreach: 在 C++ 中,编写遍历序列的循环很繁琐。我们可以使用迭代器,这需要大量的样板代码,或者我们可以使用 std::for_each() 算法并将循环体移动到谓词中,这需要不亚于样板代码,并且迫使我们将逻辑从使用它的位置移动很远。相比之下,某些其他语言(如 Perl)提供了专门的“foreach”结构来自动化此过程。BOOST_FOREACH 就是 C++ 的这种结构。它为我们遍历序列,使我们不必直接处理迭代器或编写谓词。
- Geometry: Boost.Geometry 库提供了几何算法、基元和空间索引。
- GIL: (C++14) 通用图像库
- Graph: BGL 图接口和图组件是通用的,与标准模板库 (STL) 一样。
- GraphParallel: PBGL 图接口和图组件是通用的,与标准模板库 (STL) 一样。
- Histogram: 具有 C++14 方便接口的快速多维直方图
- Min-Max: 标准库扩展,用于同时进行最小/最大和最小/最大元素计算。
- Polygon: Voronoi 图构造以及布尔运算/裁剪、调整大小/偏移等,用于具有整数坐标的平面多边形。
- QVM: 用于处理四元数、向量和矩阵的通用 C++ 库。
- Range: 一种新的通用算法基础设施,它建立在新的迭代器概念之上。
- Sort: 高性能模板排序函数。
- String Algo: 字符串算法库。
函数对象和高阶编程
- Bind: boost::bind 是标准函数 std::bind1st 和 std::bind2nd 的泛化。它支持任意函数对象、函数、函数指针和成员函数指针,并且能够将任何参数绑定到特定值或将输入参数路由到任意位置。
- Container Hash: 一个兼容 STL 的哈希函数对象,可以扩展到哈希用户定义的类型。
- Container Hash: 一个兼容 STL 的哈希函数对象,可以扩展到哈希用户定义的类型。
- Function: 用于延迟调用或回调的函数对象包装器。
- Functional: Boost.Function 库包含一系列类模板,它们是函数对象包装器。
- Functional/Factory: 用于动态和静态对象创建的函数对象模板
- Functional/Forward: 适配器,允许通用函数对象接受任意参数
- Functional/Overloaded Function: 将不同的函数重载到单个函数对象中。
- HOF: 用于 C++ 的高阶函数
- Lambda: 在实际调用站点定义小的无名函数对象,等等。
- Lambda2: 一个 C++14 lambda 库。
- Local Function: 在其他函数内部、直接在需要它们的范围内对函数进行本地编程。
- Member Function: 用于函数/对象/指针和成员函数的通用绑定器。
- Phoenix: 在实际调用站点定义小的无名函数对象,等等。
- Ref: 用于将引用传递给通用函数的实用程序库。
- Result Of: 确定函数调用表达式的类型。
- Signals2: 受管信号和槽回调实现(线程安全版本 2)。
泛型编程
- Call Traits: 定义用于传递参数的类型。
- Concept Check: 用于泛型编程的工具。
- Enable If: 选择性包含函数模板重载。
- Function Types: Boost.FunctionTypes 提供功能来对函数、函数指针、函数引用和指向成员类型的指针进行分类、分解和合成。
- GIL: (C++14) 通用图像库
- In Place Factory, Typed In Place Factory: 使用可变参数列表对包含的对象进行通用的就地构造。
- Operators: 简化算术类和迭代器中运算符定义的模板。
- Property Map: 定义将键对象映射到值对象的接口的概念。
- Property Map (Parallel): 与并行图一起使用的属性映射的并行扩展。
- QVM: 用于处理四元数、向量和矩阵的通用 C++ 库。
- Static Assert: 静态断言(编译时断言)。
- Stl_interfaces: 用于定义迭代器、视图和容器的 C++14 及更高版本 CRTP 模板。
- TTI: 类型特征内省库。
- Type Traits: 用于类型的基本属性的模板。
- YAP: 用于 C++14 及更高版本的表达式模板库。
模板元编程
- CallableTraits: Boost.FunctionTypes 的精神继承者,Boost.CallableTraits 是一个仅包含头文件的 C++11 库,用于对所有“可调用”类型进行编译时检查和操作。对 C++17 功能的额外支持。
- Describe: 一个 C++14 反射库。
- Function Types: Boost.FunctionTypes 提供功能来对函数、函数指针、函数引用和指向成员类型的指针进行分类、分解和合成。
- Fusion: 用于处理元组的库,包括各种容器、算法等。
- Hana: 一个现代的 C++ 元编程库。它提供高层次的算法来操作异构序列,允许使用自然语法编写类型级计算,提供工具来内省用户定义的类型等等。
- HOF: 用于 C++ 的高阶函数
- Metaparse: 一个用于生成编译时解析器的库,这些解析器解析嵌入式 DSL 代码作为 C++ 编译过程的一部分
- Mp11: 一个 C++11 元编程库。
- MPL: Boost.MPL 库是一个通用的、高层次的 C++ 模板元编程框架,它包含编译时算法、序列和元函数。它提供了一个概念性基础和一组广泛的强大且一致的工具,这些工具使在 C++ 中进行显式元编程尽可能简单和愉快,这在当前语言中是可能的。
- PFR: 用于用户定义类型的基本反射。
- Proto: 用于特定领域嵌入式语言的表达式模板库和编译器构建工具。
- Static Assert: 静态断言(编译时断言)。
- TTI: 类型特征内省库。
- Type Traits: 用于类型的基本属性的模板。
- YAP: 用于 C++14 及更高版本的表达式模板库。
预处理器元编程
并发编程
- Asio: 可移植的网络和其他低级 I/O,包括套接字、计时器、主机名解析、套接字 iostreams、串行端口、文件描述符和 Windows HANDLE。
- Atomic: C++11 风格的原子类型。
- Beast: 仅使用 C++11 和 Boost.Asio 的可移植 HTTP、WebSocket 和网络操作。
- Cobalt: 协程。基本算法和类型
- Compute: 并行/GPU 计算库。
- Context: (C++11) 上下文切换库。
- Coroutine (已弃用): 协程库。
- Coroutine2: (C++11) 协程库。
- Fiber: (C++11) 用户级线程库。
- Interprocess: 共享内存、内存映射文件、进程共享互斥量、条件变量、容器和分配器。
- Lockfree: 无锁数据结构。
- MPI: 消息传递接口库,用于分布式内存并行应用程序编程。
- MySQL: 基于 Boost.Asio 构建的 MySQL 客户端库。
- Redis: 基于 Boost.Asio 构建的 Redis 异步客户端库。
- Thread: 可移植的 C++ 多线程。C++11、C++14、C++17。
数学和数值
- Accumulators: 用于增量计算的框架,以及统计累加器的集合。
- Endian: 用于正确字节排序等的类型和转换函数,与处理器字节序无关。
- Geometry: Boost.Geometry 库提供了几何算法、基元和空间索引。
- Histogram: 具有 C++14 方便接口的快速多维直方图
- Integer: Boost 整数头文件和类的组织旨在利用 1999 C 标准中的 <stdint.h> 类型,而不会诉诸 1998 C++ 标准中未定义的行为。头文件 <boost/cstdint.hpp> 使标准整数类型在命名空间 boost 中安全可用,而不会将任何名称放在命名空间 std 中。
- Interval: 将常用的算术函数扩展到数学区间。
- Math: Boost.Math 包含数学领域的一些贡献:浮点实用程序、特定宽度浮点类型、数学常数、统计分布、特殊函数、根查找和函数最小化、多项式和有理函数、插值,以及数值积分和微分。这些功能中的许多都是模板化的,以支持内置类型和扩展宽度类型(例如 Boost.Multiprecision)。
- Math Common Factor: 最大公约数和最小公倍数。
- Math Octonion: 八元数。
- Math Quaternion: 四元数。
- Math/Special Functions: 各种数学特殊函数。
- Math/Statistical Distributions: 各种单变量统计分布和对它们进行操作的函数。
- Multi-Array: Boost.MultiArray 提供了通用的 N 维数组概念定义和该接口的常用实现。
- Multiprecision: 用于浮点数、整数和有理数运算的扩展精度运算类型。
- Numeric Conversion: 优化的基于策略的数值转换。
- Odeint: 求解常微分方程。
- Operators: 简化算术类和迭代器中运算符定义的模板。
- Polygon: Voronoi 图构造以及布尔运算/裁剪、调整大小/偏移等,用于具有整数坐标的平面多边形。
- QVM: 用于处理四元数、向量和矩阵的通用 C++ 库。
- Random: 一个完整的随机数生成系统。
- Ratio: 编译时有理数运算。C++11。
- Rational: 有理数类。
- Safe Numerics: 保证正确的整数运算。
- uBLAS: uBLAS 提供张量、矩阵和向量类,以及基本线性代数例程。支持几种密集、打包和稀疏存储方案。
正确性和测试
- Assert: 可自定义的断言宏。
- Concept Check: 用于泛型编程的工具。
- Contract: 用于 C++ 的契约式编程。支持所有契约式编程功能:分包、类不变式、后置条件(包含旧值和返回值)、前置条件、断言失败时可自定义的操作(例如,终止或抛出)、断言的可选编译和检查等等。
- Safe Numerics: 保证正确的整数运算。
- Stacktrace: 收集、存储、复制和打印回溯。
- Static Assert: 静态断言(编译时断言)。
- Test: 支持简单的程序测试、完整的单元测试以及程序执行监控。
错误处理和恢复
- Assert: 可自定义的断言宏。
- Exception: Boost Exception 库支持在异常对象中传输任意数据,以及在线程之间传输异常。
- LEAF: 一个用于 C++11 的轻量级错误处理库。
- System: 可扩展的错误报告。
- ThrowException: 从 Boost 库抛出异常的通用基础设施。
数据结构
- Any: 用于不同值类型的单个值的安全的、通用的容器。
- Bimap: 用于 C++ 的双向映射库。使用 Boost.Bimap,您可以创建关联容器,其中两种类型都可以用作键。
- Compressed Pair: 一个具有空成员优化的 pair 类。
- Container: 标准库容器和扩展。
- Fusion: 用于处理元组的库,包括各种容器、算法等。
- Geometry: Boost.Geometry 库提供了几何算法、基元和空间索引。
- Heap: 优先级队列数据结构。
- Histogram: 具有 C++14 方便接口的快速多维直方图
- ICL: 区间容器库,区间集合和映射以及关联值的聚合
- JSON: C++11 中的 JSON 解析、序列化和 DOM。
- Multi-Index: Boost Multi-index 容器库提供了一个名为 multi_index_container 的类模板,它允许构建维护一个或多个索引的容器,这些索引具有不同的排序和访问语义。
- Optional: 用于表示给定类型“可选”(或“可空”)对象的语义值、类型安全的包装器。可选对象可以包含底层类型的值,也可以不包含。
- PFR: 用于用户定义类型的基本反射。
- Pointer Container: 用于存储堆分配的多态对象的容器,以简化面向对象编程。
- Polygon: Voronoi 图构造以及布尔运算/裁剪、调整大小/偏移等,用于具有整数坐标的平面多边形。
- Property Tree: 一种树形数据结构,特别适合存储配置数据。
- Tuple: 方便定义返回多个值的函数等等。
- Type Erasure: 基于概念的运行时多态性。
- URL: C++11 中的 URL 解析。
- Uuid: 通用唯一标识符。
- Variant: 安全、通用、基于堆栈的区分联合容器。
- Variant2: std::variant 的永不为空值、强保证实现。
特定领域
- Chrono: 有用的时间实用程序。C++11。
- CRC: Boost CRC 库提供了两种 CRC(循环冗余校验)计算对象的实现,以及两种 CRC 计算函数的实现。这些实现是基于模板的。
- Date Time: 一组基于泛型编程概念的日期时间库。
- Units: 零开销的量纲分析以及单位/量操作和转换。
- Uuid: 通用唯一标识符。
图像处理
- GIL: (C++14) 通用图像库
输入/输出
- Asio: 可移植的网络和其他低级 I/O,包括套接字、计时器、主机名解析、套接字 iostreams、串行端口、文件描述符和 Windows HANDLE。
- Assign: 用常量或生成的数据填充容器从未如此简单。
- Beast: 仅使用 C++11 和 Boost.Asio 的可移植 HTTP、WebSocket 和网络操作。
- Endian: 用于正确字节排序等的类型和转换函数,与处理器字节序无关。
- Format: format 库提供了一种类型安全的机制,用于根据 printf 样式的格式字符串格式化参数。
- IO: 标准 I/O 库的实用程序。
- Iostreams: Boost.IOStreams 提供了一个用于定义流、流缓冲区和 I/O 过滤器的框架。
- JSON: C++11 中的 JSON 解析、序列化和 DOM。
- MySQL: 基于 Boost.Asio 构建的 MySQL 客户端库。
- Program Options: program_options 库允许程序开发人员通过传统方法(例如命令行和配置文件)从用户获取程序选项,即(名称、值)对。
- Redis: 基于 Boost.Asio 构建的 Redis 异步客户端库。
- Serialization: 用于持久性和封送处理的序列化。
- URL: C++11 中的 URL 解析。
跨语言支持
- Python: Boost Python 库是一个用于连接 Python 和 C++ 的框架。它允许你使用任何特殊工具快速、无缝地将 C++ 类函数和对象公开给 Python,反之亦然,只需使用你的 C++ 编译器。
语言特性模拟
- Compat: 后续 C++ 标准中添加的标准组件的 C++11 实现。
- Describe: 一个 C++14 反射库。
- Exception: Boost Exception 库支持在异常对象中传输任意数据,以及在线程之间传输异常。
- Foreach: 在 C++ 中,编写遍历序列的循环很繁琐。我们可以使用迭代器,这需要大量的样板代码,或者我们可以使用 std::for_each() 算法并将循环体移动到谓词中,这需要不亚于样板代码,并且迫使我们将逻辑从使用它的位置移动很远。相比之下,某些其他语言(如 Perl)提供了专门的“foreach”结构来自动化此过程。BOOST_FOREACH 就是 C++ 的这种结构。它为我们遍历序列,使我们不必直接处理迭代器或编写谓词。
- Move: 用于 C++03 和 C++11 编译器的可移植移动语义。
- Outcome: 一个确定性错误处理库,部分模拟轻量级异常。
- Parameter: Boost.Parameter 库 - 编写按名称接受参数的函数。
- Parameter Python Bindings: Boost.Parameter 库 Python 绑定。
- Scope: 一组作用域保护器和一个 unique_resource 包装器。
- Scope Exit: 在作用域退出时执行任意代码。
- ThrowException: 从 Boost 库抛出异常的通用基础设施。
- Type Index: 运行时/编译时可复制的类型信息。
- Typeof: typeof 运算符模拟。
内存
解析
- Spirit: LL 解析器框架将解析器直接表示为内联 C++ 中的 EBNF 语法。
- Spirit Classic: LL 解析器框架将解析器直接表示为内联 C++ 中的 EBNF 语法。
- Spirit Repository: Spirit 库是一个社区项目,它收集了 Qi 解析器和 Karma 生成器的不同可重用组件(基元、指令、语法等)。
模式和习惯用法
- Compressed Pair: 一个具有空成员优化的 pair 类。
- Flyweight: 用于管理大量高度冗余对象的模式。
- Outcome: 一个确定性错误处理库,部分模拟轻量级异常。
- Scope: 一组作用域保护器和一个 unique_resource 包装器。
- Signals2: 受管信号和槽回调实现(线程安全版本 2)。
- Utility: 各种实用程序,例如成员到基类转换 idiom 和 C++03 中的二进制字面量。
编程接口
- Compat: 后续 C++ 标准中添加的标准组件的 C++11 实现。
- Function: 用于延迟调用或回调的函数对象包装器。
- Outcome: 一个确定性错误处理库,部分模拟轻量级异常。
- Parameter: Boost.Parameter 库 - 编写按名称接受参数的函数。
- Parameter Python Bindings: Boost.Parameter 库 Python 绑定。
- System: 可扩展的错误报告。
状态机
- Meta State Machine: 一个用于表达式的 UML2 有限状态机的超高性能库。
- Statechart: Boost.Statechart - 可以使用易于阅读和维护的 C++ 代码实现任意复杂的有限状态机。
系统
- Chrono: 有用的时间实用程序。C++11。
- Context: (C++11) 上下文切换库。
- Date Time: 一组基于泛型编程概念的日期时间库。
- DLL: 用于舒适地使用 DLL 和 DSO 的库。
- Fiber: (C++11) 用户级线程库。
- Filesystem: Boost Filesystem 库提供可移植的工具来查询和操作路径、文件和目录。
- Nowide: 在 Windows 上具有 UTF-8 API 的标准库函数。
- Process: 以可移植的方式创建进程的库。
- Stacktrace: 收集、存储、复制和打印回溯。
- System: 可扩展的错误报告。
- Thread: 可移植的 C++ 多线程。C++11、C++14、C++17。
其他
- CharConv: C++11 中 <charconv> 的实现。
- Conversion: 多态转换。
- Convert: 可扩展且可配置的类型转换框架。
- Core: 一组具有最小依赖关系的简单核心实用程序。
- Endian: 用于正确字节排序等的类型和转换函数,与处理器字节序无关。
- Lexical Cast: 通用文字文本转换,例如将 int 表示为字符串,反之亦然。
- Log: 日志记录库。
- Numeric Conversion: 优化的基于策略的数值转换。
- Predef: 该库定义了一组编译器、体系结构、操作系统、库和其他版本号,这些信息是从它可以收集的 C、C++、Objective C 和 Objective C++ 预定义宏或通常可用的头文件中定义的信息中获取的。
- Program Options: program_options 库允许程序开发人员通过传统方法(例如命令行和配置文件)从用户获取程序选项,即(名称、值)对。
- Swap: 增强的泛型交换函数。
- Timer: 事件计时器、进度计时器和进度显示类。
- Tribool: 3 状态布尔类型库。
- Utility: 各种实用程序,例如成员到基类转换 idiom 和 C++03 中的二进制字面量。
- Value Initialized: 基于 David Abrahams 的原始想法,用于统一语法值初始化的包装器。
损坏的编译器解决方法
- Compatibility: 帮助不符合标准的标准库。
- Config: 帮助 Boost 库开发人员适应编译器特质;不适用于库用户。