一. 内容
-
你正在寻找一个
高质量,源码开放,平台独立,编译器独立的程序库
吗?看看 Boost 吧。有兴趣加入一个由雄心勃勃,充满才干的 C++ 开发人员组成的社群,致力发展当前最高技术水平的程序库
吗?看看 Boost 吧。想要一瞥未来 C++ 的面目吗?看看 Boost 吧。 -
Boost 委员会和 C++ 标准委员会成员有很密切的关系
,并对其有着深刻的影响能力。Boost 由标准委员会创立,因此两者成员有着很大重叠。Boost 有个目标:作为一个可被加入到标准 C++ 的功能测试场。这层关系造就的结果是:以 TR1 为例,进入标准 C++ 的 14个新程序库中,超过三分之二奠基于 Boost 的工作成果。 -
Boost 接纳新程序库的过程也很有意思。
它以公开进行的同僚复审为基础
。如果你有意贡献一个程序库给 Boost,首先要对 Boost 开发者邮递开发作品,在评价这个程序库的重要性之后,启动初步审查程序。
当你最终正式提交时,你要满足一些最低条件。例如它必须通过至少两个编译器,以展示至此微不足道的可移植性,你必须证明你的程序库是在一个可接受的授权许可下是可用的,例如必须免费商业化和非商业化用途…
进入复审阶段,会有志愿者查看你的程序库和各种素材,例如源码,设计文档,使用说明等,并考虑以下问题:
- 这份设计和实现有多么好?
- 这些代码可跨编译器和操作系统吗?
- 这个程序库有可能被它所设定的用户使用吗?
- 文档是否清楚,齐备,而且精确?
这些对于阻挡低劣的程序库很有帮助,并且
启发程序库作者认真考虑一个工业强度,跨平台的程序库设计,实现和文档工程
。 -
Boost 程序库涉及的领域很多:
- 字符串与文本处理,比如格式化字符串,正则表达式,语汇单元切割和解析。
- 容器,覆盖接口与 STL 相似的数组,bitsets,以及多维数组。
- 函数对象和高级编程,覆盖若干被作为 TR1 的程序库,一个有趣的程序库是 Lambda。
- 泛型编程,覆盖一大组 traits classes。
- 模板元编程,TMP 程序库。
- 数学和数值,包括有理数,八元数和四元数,公约数和少见的多重计算,随机数等等。
- 正确性和测试,覆盖用来将隐式模板接口形式化的程序库。
- 数据结构,覆盖类型安全的 unions,tuples。
- 语言间的支持,包括允许 C++ 和 Python 的无缝互操作性。
- 内存,覆盖 Pool 程序库,包括智能指针等。
- 杂项,包括 CRC 检验,日期和时间处理,文件系统操纵等。
请记住,这只是一份抽样,并不是一份详尽清单。
Boost 提供的程序库可做的事情有很多,但它并未覆盖编程的所有领域,不过纵使你没能找到刚好符合需求的作品,也一定会在其中发现
一些有趣的东西
。
二. 总结
- Boost 是一个社群,也是一个网站。致力于免费,源码开放,同僚复审的 C++ 程序库开发。 Boost 在 C++ 标准化过程中扮演深具影响力的角色。
- Boost 提供许多 TR1 组件实现品,以及其他许多程序库。