前言
这里简单记录下
Boost库
分类
Boost库分类
GitHub地址
参考博客
按照实现的功能,Boost可为大致归入以下20个分类,在下面的分类中,有些库同时归入几种类别
字符串和文本处理库
Conversion
库:对C++类型转换的增强,提供更强的类型安全转换、更高效的类型安全保护、进行范围检查的数值转换和词法转换Format
库:实现类似printf的格式化对象,可以把参数格式化到一个字符串,而且是完全类型安全的IOStream
库:扩展C++标准库流处理,建立一个流处理框架Lexical Cast
库:用于字符串、整数、浮点数的字面转换Regex
库:正则表达式,已经被TR1所接受Spirit
库:基于EBNF范式的LL解析器框架String Algo
库:一组与字符串相关的算法Tokenizer
库:把字符串拆成一组记号的方法Wave
库:使用spirit库开发的一个完全符合C/C++标准的预处理器Xpressive
库:无需编译即可使用的正则表达式库
容器库
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_xxxVariant
库:简单地说,就是持有string, vector等复杂类型的联合体
迭代器库
GIL
库:通用图像库Graph
库:处理图结构的库Iterators
库:为创建新的迭代器提供框架Operators
库:允许用户在自己的类里仅定义少量的操作符,就可方便地自动生成其他操作符重载,而且保证正确的语义实现Tokenizer
库:把字符串拆成一组记号的方法
算法库
Foreach
库:容器遍历算法GIL
库:通用图像库Graph
库:处理图结构的库Min-Max
库:可在同一次操作中同时得到最大值和最小值Range
库:一组关于范围的概念和实用程序String Algo
库:可在不使用正则表达式的情况下处理大多数字符串相关算法操作Utility
库:小工具的集合
函数对象和高阶编程库
Bind
库:绑定器的泛化,已被收入TR1Function
库:实现一个通用的回调机制,已被收入TR1Functional
库:适配器的增强版本Functional/Factory
库:用于实现静态和动态的工厂模式Functional/Forward
库:用于接受任何类型的参数Functional/Hash
库:实现了TR1中的散列函数Lambda
库:Lambda表达式,即未命名函数Member Function
库:是STL中mem_fun和mem_fun_ref的扩展Ref
库:包装了对一个对象的引用,已被收入TR1Result Of
库:用于确定一个调用表达式的返回类型,已被收入TR1Signals
库:实现线程安全的观察者模式Signals2
库:基于Signal的另一种实现Utility
库:小工具的集合Phoenix
库:实现在C++中的函数式编程
泛型编程库
Call Traits
库:封装可能是最好的函数传参方式Concept Check
库:用来检查是否符合某个概念Enable If
库:允许模板函数或模板类在偏特化时仅针对某些特定类型有效Function Types
库:提供对函数、函数指针、函数引用和成员指针等类型进行分类分解和合成的功能GIL
库:通用图像库In Place Factory/Typed In Place Factory
库:工厂模式的一种实现Operators
库:允许用户在自己的类里仅定义少量的操作符,就可方便地自动生成其他操作符重载,而且保证正确的语义实现Property Map
库:提供键值映射的属性概念定义Static Assert
库:把断言的诊断时刻由运行期提前到编译期,让编译器检查可能发生的错误Type Traits
库:在编译时确定类型是否具有某些特征TTI
库:实现类型萃取的反射功能
模板元编程
Fusion
库:提供基于tuple的编译期容器和算法MPL
库:模板元编程框架Proto
库:构建专用领域嵌入式语言Static Assert
库:把断言的诊断时刻由运行期提前到编译期,让编译器检查可能发生的错误Type Traits
库:在编译时确定类型是否具有某些特征
预处理元编程库
Preprocessors
库:提供预处理元编程工具
并发编程库
Asio
库:基于操作系统提供的异步机制,采用前摄设计模式实现了可移植的异步IO操作Interprocess
库:实现了可移植的进程间通信功能,包括共享内存、内存映射文件、信号量、文件锁、消息队列等MPI
库:用于高性能的分布式并行开发Thread
库:为C++增加线程处理能力,支持Windows和POSIX线程Context
库:提供了在单个线程上的协同式多任务处理的支持,该库可以用于实现用户级的多任务处理的机制,比如说协程coroutines,用户级协作线程或者类似于C#语言中yield关键字的实现Atomic
库:实现C++11样式的atomic<>,提供原子数据类型的支持和对这些原子类型的原子操作的支持Coroutine
库:实现对协程的支持,协程与线程的不同之处在于,协程是基于合作式多任务的,而多线程是基于抢先式多任务的Lockfree
库:提供对无锁数据结构的支持
数学和数字库
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号建议,实现编译期的分数操作Multiprecision
库:提供比C++内置的整数、分数和浮点数精度更高的多精度数值运算功能Odeint
库:用于求解常微分方程的初值问题
排错和测试库
Concept Check
库:用来检查是否符合某个概念Static Assert
库:把断言的诊断时刻由运行期提前到编译期,让编译器检查可能发生的错误Test
库:提供了一个用于单元测试的基于命令行界面的测试套件
数据结构库
Any
库:支持对任意类型的值进行类型安全的存取Bimap
库:双向映射结构库Compressed Pair
库:优化的对pair对象的存储Fusion
库:提供基于tuple的编译期容器和算法ICL
库:区间容器库,处理区间集合和映射Multi-Index
库:为底层的容器提供多个索引Pointer Container
库:容纳指针的容器Property Tree
库:保存了多个属性值的树形数据结构Tuple
库:元组,已被TR1接受Uuid
库:用于表示和生成UUIDVariant
库:有类别的泛型联合类Heap
库:对std::priority_queue扩展,实现优先级队列Type Erasure
库:实现运行时的多态
图像处理库
GIL
库:通用图像库
输入输出库
Assign
库:用简洁的语法实现对STL容器赋值或者初始化Format
库:实现类似printf的格式化对象,可以把参数格式化到一个字符串,而且是完全类型安全的IO State Savers
库:用来保存流的当前状态,自动恢复流的状态等IOStreams
库:扩展C++标准库流处理,建立一个流处理框架Program Options
库:提供强大的命令行参数处理功能Serialization
库:实现C++数据结构的持久化
跨语言混合编程库
Python
库:用于实现Python和C++对象的无缝接口和混合编程
内存管理库
Pool
库:基于简单分隔存储思想实现了一个快速、紧凑的内存池库Smart Ptr
库:智能指针Utility
库:小工具的集合
解析库
Spirit
库:基于EBNF范式的LL解析器框架
编程接口库
Function
库:实现一个通用的回调机制,已被收入TR1Parameter
库:提供使用参数名来指定函数参数的机制
综合类库
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号建议所支持的时间功能Log
库:实现日志功能Predef
库:提供一批统一兼容探测其他宏的预定义宏
编译器问题的变通方案库
Compatibility
库:为不符合标准库要求的环境提供帮助Config
库:将程序的编译配置分解为三个部分:平台、编译器和标准库,帮助库开发者解决特定平台特定编译器的兼容问题