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