Boost是一个C++开发者集结的社群,也是一个可以自由下载的C++程序库群。它的网址是https://www.boost.org/
Boost的两个原因使其他组织无法匹敌:
(1)它与C++标准委员会之间有着独一无二的密切关系,并且对委员会深具影响力。Boost由委员会创设,因此Boost成员和委员会成员有很大的重叠。Boost有个目标:作为一个“可被加入标准C++之各种功能”的测试场。
(2)它接纳程序库的过程。以公开进行的同僚复审为基础。
Boost程序库的主题非常繁多,区分数十种。包括:
1.字符串文本处理
2.容器:“接口与STL相似且大小固定”的数组(条款54)、大小可变的bitsets以及多维数组。
3.函数对象和高级编程:Lambda等。
4.泛型编程:覆盖一大组traits classes(条款47)。
5.模板元编程(条款48):覆盖一个针对编译器assertions而写的程序库以及Boost MPL程序库。
6.数学和数值:有理数、八元数、四元素、常见的公约数和少见的多重运算、随机数。
7.正确性测试:覆盖用来将隐式模板接口(条款41)形式化的程序库,以及针对“测试优先”编程形态而设计的措施。
8.数据结构:覆盖类型安全的unions以及tuple程序库。
9.语言间的支持:c++与python之间的无缝互操作性。
10.内存:覆盖Pool程序库,用来做出高效率而区块大小固定的分配器(条款50),以及多变化的智能指针(条款13),包括TR1智能指针。另有scoped_array,是auto_ptr-like智能指针,用来动态分配数组。
11.杂论:CRC检验、日期和时间的处理、在文件系统上来回移动等等。
这只是在Boost中找到的程序库抽样,不是一份详尽清单。
请记住
- Boost是一个社群,也是一个网站。致力于免费的、源码开放、同僚复审的C++程序库开发。Boost在C++标准化过程中扮演深具影响力的角色。
- Boost提供许多TR1组件实现品,以及其他许多程序库。