EffectiveC++-条款55:让自己熟悉 Boost

一. 内容

  1. 你正在寻找一个高质量,源码开放,平台独立,编译器独立的程序库吗?看看 Boost 吧。有兴趣加入一个由雄心勃勃,充满才干的 C++ 开发人员组成的社群,致力发展当前最高技术水平的程序库吗?看看 Boost 吧。想要一瞥未来 C++ 的面目吗?看看 Boost 吧。

  2. Boost 委员会和 C++ 标准委员会成员有很密切的关系,并对其有着深刻的影响能力。Boost 由标准委员会创立,因此两者成员有着很大重叠。Boost 有个目标:作为一个可被加入到标准 C++ 的功能测试场。这层关系造就的结果是:以 TR1 为例,进入标准 C++ 的 14个新程序库中,超过三分之二奠基于 Boost 的工作成果。

  3. Boost 接纳新程序库的过程也很有意思。它以公开进行的同僚复审为基础

    如果你有意贡献一个程序库给 Boost,首先要对 Boost 开发者邮递开发作品,在评价这个程序库的重要性之后,启动初步审查程序。

    当你最终正式提交时,你要满足一些最低条件。例如它必须通过至少两个编译器,以展示至此微不足道的可移植性,你必须证明你的程序库是在一个可接受的授权许可下是可用的,例如必须免费商业化和非商业化用途…

    进入复审阶段,会有志愿者查看你的程序库和各种素材,例如源码,设计文档,使用说明等,并考虑以下问题:

    • 这份设计和实现有多么好?
    • 这些代码可跨编译器和操作系统吗?
    • 这个程序库有可能被它所设定的用户使用吗?
    • 文档是否清楚,齐备,而且精确?

    这些对于阻挡低劣的程序库很有帮助,并且启发程序库作者认真考虑一个工业强度,跨平台的程序库设计,实现和文档工程

  4. Boost 程序库涉及的领域很多:

    • 字符串与文本处理,比如格式化字符串,正则表达式,语汇单元切割和解析。
    • 容器,覆盖接口与 STL 相似的数组,bitsets,以及多维数组。
    • 函数对象和高级编程,覆盖若干被作为 TR1 的程序库,一个有趣的程序库是 Lambda。
    • 泛型编程,覆盖一大组 traits classes。
    • 模板元编程,TMP 程序库。
    • 数学和数值,包括有理数,八元数和四元数,公约数和少见的多重计算,随机数等等。
    • 正确性和测试,覆盖用来将隐式模板接口形式化的程序库。
    • 数据结构,覆盖类型安全的 unions,tuples。
    • 语言间的支持,包括允许 C++ 和 Python 的无缝互操作性。
    • 内存,覆盖 Pool 程序库,包括智能指针等。
    • 杂项,包括 CRC 检验,日期和时间处理,文件系统操纵等。

    请记住,这只是一份抽样,并不是一份详尽清单。

    Boost 提供的程序库可做的事情有很多,但它并未覆盖编程的所有领域,不过纵使你没能找到刚好符合需求的作品,也一定会在其中发现一些有趣的东西

二. 总结

  1. Boost 是一个社群,也是一个网站。致力于免费,源码开放,同僚复审的 C++ 程序库开发。 Boost 在 C++ 标准化过程中扮演深具影响力的角色。
  2. Boost 提供许多 TR1 组件实现品,以及其他许多程序库。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值