Boost 库文档
排序方式
按类别
字符串和文本处理
- CharConv:C++11 中 <charconv> 的实现。
- Convert:可扩展和可配置的类型转换框架。
- Format:Format 库提供了一种类型安全的机制,用于根据类似 printf 的格式字符串格式化参数。
- Iostreams:Boost.IOStreams 提供了一个用于定义流、流缓冲区和 i/o 过滤器的框架。
- Lexical Cast:通用的文字文本转换,例如将整数表示为字符串,反之亦然。
- 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_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 及更高版本的表达式模板库。
预处理器元编程
- Identity Type:将类型用圆括号括起来,以便它们始终可以作为宏参数传递。
- Preprocessor:预处理器元编程工具,包括重复和递归。
- VMD:可变宏数据库。
并发编程
- Asio:可移植的网络和其他底层 I/O,包括套接字、计时器、主机名解析、套接字 iostream、串行端口、文件描述符和 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_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,包括套接字、计时器、主机名解析、套接字 iostream、串行端口、文件描述符和 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 运算符仿真。
内存
解析
- Parser:一个解析器组合器库。
- 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:各种实用程序,例如 C++03 中的 base-from-member 惯用法和二进制字面量。
编程接口
- 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:通用的文字文本转换,例如将整数表示为字符串,反之亦然。
- 日志库(Log):日志记录库。
- Numeric Conversion:优化的基于策略的数值转换。
- 预定义库(Predef):该库定义了一组编译器、体系结构、操作系统、库和其他版本号,这些信息来自它可以收集的 C、C++、Objective C 和 Objective C++ 预定义宏或在通用可用头文件中定义的宏。
- Program Options:program_options 库允许程序开发人员通过诸如命令行和配置文件之类的常规方法从用户获取程序选项,即(名称,值)对。
- 交换函数(Swap):增强的泛型交换函数。
- 计时器库(Timer):事件计时器、进度计时器和进度显示类。
- 三态布尔值库(Tribool):三态布尔类型库。
- Utility:各种实用程序,例如 C++03 中的 base-from-member 惯用法和二进制字面量。
- 值初始化库(Value Initialized):基于 David Abrahams 的原始想法,用于统一语法值初始化的包装器。
损坏的编译器变通方法
- 兼容性库(Compatibility):为不符合标准的库提供帮助。
- 配置库(Config):帮助 Boost 库开发者适应编译器的特殊性;不适用于库用户。