# Boost库分类 --- **1. 字符串和文本处理库** | 库名 | 库功能说明 | | -------- | -------- | |Conversion库|对C++类型转换的增强,提供更强的类型安全转换、更高效的类型安全保护、进行范围检查的数值转换和词法转换。| |Format库|实现类似printf的格式化对象,可以把参数格式化到一个字符串,而且是完全类型安全的。| |IOStream库|扩展C++标准库流处理,建立一个流处理框架。| |Lexical Cast库|用于字符串、整数、浮点数的字面转换。| |Regex 库|正则表达式,已经被TR1所接受。| |Spirit库|基于EBNF范式的LL解析器框架。| |String Algo库|一组与字符串相关的算法。| |Tokenizer库|把字符串拆成一组记号的方法。| |Wave库|使用spirit库开发的一个完全符合C/C++标准的预处理器。| |Xpressive 库|无需编译即可使用的正则表达式库。| **2. 容器库** | 库名 | 库功能说明 | | -------- | -------- | |Array 库|对C语言风格的数组进行包装| |Bimap 库|双向映射结构库| |Circular Buffer 库|实现循环缓冲区的数据结构| |Disjoint Sets库 |实现不相交集的库| |Dynamic Bitset 库|支持运行时调整容器大小的位集合| |GIL 库|通用图像库| |Graph 库|处理图结构的库| |ICL 库|区间容器库,处理区间集合和映射| |Intrusive 库|侵入式容器和算法| |Multi-Array 库|多维容器| |Multi-Index 库|实现具有多个STL兼容索引的容器| |Pointer Container 库|容纳指针的容器| |Property Map 库|提供键/值映射的属性概念定义| |Property Tree 库|保存了多个属性值的树形数据结构| |Unordered 库|散列容器,相当于hash_xxx| |Variant 库|简单地说,就是持有string, vector等复杂类型的联合体| **3. 迭代器库** | 库名 | 库功能说明 | | -------- | -------- | |GIL 库|通用图像库| |Graph 库|处理图结构的库| |Iterators库|为创建新的迭代器提供框架| |Operators库|允许用户在自己的类里仅定义少量的操作符,就可方便地自动生成其他操作符重载,而且保证正确的语义实现| |Tokenizer库|把字符串拆成一组记号的方法| **4. 算法库** | 库名 | 库功能说明 | | -------- | -------- | |Foreach库|容器遍历算法| |GIL库|通用图像库| |Graph库|处理图结构的库| |Min-Max库|可在同一次操作中同时得到最大值和最小值| |Range库|一组关于范围的概念和实用程序| |String Algo库|可在不使用正则表达式的情况下处理大多数字符串相关算法操作| |Utility库|小工具的集合| **5. 函数对象和高阶编程库** | 库名 | 库功能说明 | | -------- | -------- | |Bind库|绑定器的泛化,已被收入TR1| |Function库|实现一个通用的回调机制,已被收入TR1| |Functional库|适配器的增强版本| |Functional/Factory库|用于实现静态和动态的工厂模式| |Functional/Forward库|用于接受任何类型的参数| |Functional/Hash库|实现了TR1中的散列函数| |Lambda库|Lambda表达式,即未命名函数| |Member Function库|是STL中mem_fun和mem_fun_ref的扩展| |Ref库|包装了对一个对象的引用,已被收入TR1| |Result Of库|用于确定一个调用表达式的返回类型,已被收入TR1| |Signals库|实现线程安全的观察者模式| |Signals2库|基于Signal的另一种实现| |Utility库|小工具的集合| |Phoenix库|实现在C++中的函数式编程。| **6. 泛型编程库** | 库名 | 库功能说明 | | -------- | -------- | |Call Traits库|封装可能是最好的函数传参方式| |Concept Check库|用来检查是否符合某个概念| |Enable If库|允许模板函数或模板类在偏特化时仅针对某些特定类型有效| |Function |Types库|提供对函数、函数指针、函数引用和成员指针等类型进行分类分解和合成的功能| |GIL库|通用图像库| |In Place Factory, Typed In Place Factory库|工厂模式的一种实现| |Operators库|允许用户在自己的类里仅定义少量的操作符,就可方便地自动生成其他操作符重|载,而且保证正确的语义实现| |Property Map库|提供键值映射的属性概念定义| |Static Assert库|把断言的诊断时刻由运行期提前到编译期,让编译器检查可能发生的错误| |Type Traits库|在编译时确定类型是否具有某些特征| |TTI库|实现类型萃取的反射功能。| **7. 模板元编程** | 库名 | 库功能说明 | | -------- | -------- | |Fusion库|提供基于tuple的编译期容器和算法| |MPL库|模板元编程框架| |Proto库|构建专用领域嵌入式语言| |Static Assert库|把断言的诊断时刻由运行期提前到编译期,让编译器检查可能发生的错误| |Type Traits库|在编译时确定类型是否具有某些特征| **8. 预处理元编程库** | 库名 | 库功能说明 | | -------- | -------- | | Preprocessors库|提供预处理元编程工具| **9. 并发编程库** | 库名 | 库功能说明 | | -------- | -------- | | Asio库|基于操作系统提供的异步机制,采用前摄设计模式实现了可移植的异步IO操作| | Interprocess库|实现了可移植的进程间通信功能,包括共享内存、内存映射文件、信号量、文件锁、消息队列等| | MPI库|用于高性能的分布式并行开发| | Thread库|为C++增加线程处理能力,支持Windows和POSIX线程| | Context库|提供了在单个线程上的协同式多任务处理的支持。该库可以用于实现用户级的多任务处理的机制,比如说协程coroutines,用户级协作线程或者类似于C#语言中yield关键字的实现。 [1] | | Atomic库|实现C++11样式的atomic<>,提供原子数据类型的支持和对这些原子类型的原子操作的支持。| |Coroutine库|实现对协程的支持。协程与线程的不同之处在于,协程是基于合作式多任务的,而多线程是基于抢先式多任务的。| |Lockfree库|提供对无锁数据结构的支持。| **10. 数学和数字库** | 库名 | 库功能说明 | | -------- | -------- | | Accumulators库|用于增量计算的累加器的框架| | Integer库|提供一组有关整数处理的类| | Interval库|处理区间概念的数学问题| | Math库|数学领域的模板类和算法| | Math Common Factor库|用于支持最大公约数和最小公倍数| | Math Octonion库 |用于支持八元数| | Math Quaternion库|用于支持四元数| | Math/Special Functions库|数学上一些常用的函数| | Math/Statistical Distributions库|用于单变量统计分布操作| | Multi-Array库|多维容器| | Numeric Conversion库|用于安全数字转换的一组函数| | Operators库|允许用户在自己的类里仅定义少量的操作符,就可方便地自动生成其他操作符重载,而且保证正确的语义实现| | Random库|专注于伪随机数的实现,有多种算法可以产生高质量的伪随机数| | Rational库|实现了没有精度损失的有理数| | uBLAS库|用于线性代数领域的数学库| | Geometry库|用于解决几何问题的概念、原语和算法。| | Ratio库|根据C++ 0x标准N2661号建议 [2] ,实现编译期的分数操作。| |Multiprecision库|提供比C++内置的整数、分数和浮点数精度更高的多精度数值运算功能。 [3] | |Odeint库|用于求解常微分方程的初值问题。 [4] | **11. 排错和测试库** | 库名 | 库功能说明 | | -------- | -------- | | Concept Check库 |用来检查是否符合某个概念| | Static Assert库 |把断言的诊断时刻由运行期提前到编译期,让编译器检查可能发生的错误| | Test库|提供了一个用于单元测试的基于命令行界面的测试套件| **12. 数据结构库** | 库名 | 库功能说明 | | -------- | -------- | | Any库|支持对任意类型的值进行类型安全的存取| | Bimap库|双向映射结构库| | Compressed Pair库|优化的对pair对象的存储| | Fusion库|提供基于tuple的编译期容器和算法| | ICL库|区间容器库,处理区间集合和映射| | Multi-Index库|为底层的容器提供多个索引| | Pointer Container库|容纳指针的容器| | Property Tree库|保存了多个属性值的树形数据结构| | Tuple库|元组,已被TR1接受| | Uuid库|用于表示和生成UUID| | Variant库|有类别的泛型联合类| | Heap库|对std::priority_queue扩展,实现优先级队列。| | Type Erasure: 实现运行时的多态。| **13. 图像处理库** | 库名 | 库功能说明 | | -------- | -------- | | GIL库|通用图像库| 14. 输入输出库 | 库名 | 库功能说明 | | -------- | -------- | | Assign库|用简洁的语法实现对STL容器赋值或者初始化| | Format库|实现类似printf的格式化对象,可以把参数格式化到一个字符串,而且是完全类型安全的| | IO State Savers库|用来保存流的当前状态,自动恢复流的状态等| | IOStreams库|扩展C++标准库流处理,建立一个流处理框架| | Program Options库|提供强大的命令行参数处理功能| | Serialization库|实现C++数据结构的持久化| 15. 跨语言混合编程库 | 库名 | 库功能说明 | | -------- | -------- | | Python库|用于实现Python和C++对象的无缝接口和混合编程| 16. 内存管理库 | 库名 | 库功能说明 | | -------- | -------- | | Pool库|基于简单分隔存储思想实现了一个快速、紧凑的内存池库| | Smart Ptr库|智能指针| | Utility库|小工具的集合| 17. 解析库 | 库名 | 库功能说明 | | -------- | -------- | | Spirit库|基于EBNF范式的LL解析器框架| 18. 编程接口库 | 库名 | 库功能说明 | | -------- | -------- | | Function库|实现一个通用的回调机制,已被收入TR1| | Parameter库|提供使用参数名来指定函数参数的机制| 19. 综合类库 | 库名 | 库功能说明 | | -------- | -------- | | Compressed Pair库|优化的对pair对象的存储| | CRC库|实现了循环冗余校验码功能| | Date Time 库|一个非常全面灵活的日期时间库| | Exception库|针对标准库中异常类的缺陷进行强化,提供<<操作符重载,可以向异常传入任意数据| | Filesystem库|可移植的文件系统操作库,可以跨平台操作目录、文件,已被TR2接受| | Flyweight 库|实现享元模式,享元对象不可修改,只能赋值| | Lexical Cast 库|用于字符串、整数、浮点数的字面转换| | Meta State Machine库|用于表示UML2有限状态机的库| | Numeric Conversion 库|用于安全数字转换的一组函数| | Optional 库|使用容器的语义,包装了可能产生无效值的对象,实现了未初始化的概念| | Polygon 库|处理平面多边形的一些算法| | Program Options库|提供强大的命令行参数处理功能| | Scope Exit库|使用preprocessor库的预处理技术实现在退出作用域时资源自动释放| | Statechart库|提供有限自动状态机框架| | Swap库|为交换两个变量的值提供便捷方法| | System库|使用轻量级的对象封装操作系统底层的错误代码和错误信息,已被TR2接受| | Timer库|提供简易的度量时间和进度显示功能,可以用于性能测试等需要计时的任务| | Tribool库|三态布尔逻辑值,在true和false之外引入indeterminate不确定状态| | Typeof库|模拟C++0x新增加的typeof和auto关键字,以减轻变量类型声明的工作,简化代码| | Units库|实现了物理学的量纲处理| | Utility库|小工具集合| | Value Initialized库|用于保证变量在声明时被正确初始化| | Chrono库|实现了C++ 0x标准中N2661号建议 [2] 所支持的时间功能。| | Log库|实现日志功能。| | Predef库|提供一批统一兼容探测其他宏的预定义宏。 [5] | 20. 编译器问题的变通方案库 | 库名 | 库功能说明 | | -------- | -------- | | Compatibility库|为不符合标准库要求的环境提供帮助| | Config库|将程序的编译配置分解为三个部分|平台、编译器和标准库,帮助库开发者解决特定平台特定编译器的兼容问题| ###### tags: `C++` `Boost`