Boost C++ 库

...世界上最受尊敬和专家设计的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ 编码标准

版本 1.33.0

版本 1.33.0

2005年8月11日 12:00 GMT

下载
平台文件
Unixboost_1_33_0.tar.bz2
boost_1_33_0.tar.gz
Windowsboost_1_33_0.exe
boost_1_33_0.zip

新增库

  • Iostreams 库: 用于定义流、流缓冲区和 i/o 过滤器的框架,作者 Jonathan Turkanis。
  • Functional/Hash 库: 一个 TR1 哈希函数对象,可以扩展到哈希用户定义类型,作者 Daniel James。
  • Parameter 库: 编写按名称接受参数的函数:当函数具有多个具有有用默认值的参数时,此功能特别有用,因为可以按任何顺序传递命名参数。
  • 指针容器库: 用于存储堆分配的多态对象的容器,以简化面向对象编程,作者 Thorsten Ottosen。
  • Wave: 符合标准的 C99/C++ 预处理器功能实现,封装在一个易于使用的迭代器接口之后,作者 Hartmut Kaiser。

更新库

  • Any 库: any_cast 已得到增强,允许直接访问 any 持有的值。
  • 赋值库: 支持指针容器库以及用于生成匿名范围的新高效函数 ref_list_of()cref_list_of()
  • Bind 库: Bind 表达式现在支持 比较和否定。例如:bind(&X::name, _1) < bind(&X::name, _2)
  • 日期时间库:
  • 图库: 引入了几个新算法并改进了现有算法
  • 多索引容器库:
  • 程序选项库:
    • 选项描述现在以自动换行的形式打印。
    • 命令行解析器可以绕过未注册的选项,而不是抛出异常。
    • 删除了对“隐式”(可选)值的支持。
    • 新的自定义方法 'command_line_parser::extra_style_parser'。与 'additional_parser' 不同,它允许用户解析多个标记并返回一个选项向量,而不仅仅是单个选项。
    • 在禁用异常的情况下工作。
  • 属性映射库: 引入了动态 属性类,它提供了对一组属性映射的动态类型访问。
  • Boost.Python:
    • 添加了对非静态属性上的文档字符串的支持。
    • 我们现在只为最后一个重载导出客户端提供的 init<optional<> >XXX_FUNCTION_OVERLOADS() 的文档字符串。
    • 添加了对 MacOS 上的 Embedded VC++ 4 和 GCC-3.3 的支持
    • 为 shared_ptr 的右值 Python 转换引入了更好的支持。
    • 支持使用索引套件公开 vector<T*>
    • 更新了 Visual Studio 项目构建文件。
    • 在索引页中添加了搜索功能。
  • 随机数库: 改进了 mersenne_twister 的初始化,算法由 Makoto Matsumoto 和 Takuji Nishimura 提出,由 Jens Maurer 为 Boost 实现。

    注意:所有为 mersenne_twister 构造的测试向量(不带参数或使用单个 unsigned int 参数构造或播种)都将失效。

  • 范围库:iterator range 中添加了一些便捷函数,例如 front(), back()operator[]()
  • 正则表达式库:
    • 重写的f前端解析器现在支持 (?imsx-imsx) 构造,以及后向断言和条件表达式。
    • 轻量级包装类改进了与 MFC/ATL 代码的集成。
    • 通过 ICU 库提供完全(可选)Unicode 支持。有关这些更改和其他一些小更改的更多信息,请参阅正则表达式历史记录页面
  • 序列化库:
    • DLL 版本。
    • 自动链接。
    • 序列化变体。
    • 改进了共享指针的序列化。
  • 信号库: 添加了插槽阻塞/解除阻塞功能,作者 Frantz Maerten。Robert Zeh 对信号调用性能进行了巨大的改进。

支持的编译器

Boost 在各种编译器和平台上进行了测试。由于 Boost 库依赖于并非所有编译器都提供的现代 C++ 功能,因此并非所有 Boost 库都适用于每个编译器。以下编译器和平台已使用 Boost 进行了广泛测试,尽管许多其他编译器和平台也可以工作。有关更多信息,请参阅回归测试结果

  • Mac OS X 上的 Apple GCC 3.x。
  • Windows 上的 Borland C++ 5.6.4。
  • Windows、Linux 和 Solaris 上的 GNU C++ 2.95.3(带和不带 STLport)、3.2.x.、3.3.x、3.4.x、4.0.x。
  • Windows、Linux 上的 Intel C++ 8.1、9.0。
  • Mac OS X 和 Windows 上的 Metrowerks CodeWarrior 8.3、9.4、9.5。
  • Microsoft Visual C++ 6.0 (sp5,带和不带 STLport)、7.0、7.1、8.0 beta。注意:由于 Visual C++ 8.0 beta 存在间歇性问题,并且存在各种预发布编译器版本,因此我们无法保证在最终编译器发布之前兼容。

致谢

[]Douglas Gregor 管理了此次发布。

许多人贡献了他们的时间和专业知识,才使此次发布成为可能。特别感谢 Aleksey Gurtovoy 和 Misha Bergal,他们在整个发布过程中设法保持回归测试系统正常工作;感谢 David Abrahams、Beman Dawes、Aleksey Gurtovoy、Rene Rivera 和 Jonathan Turkanis 大大提高了此次发布的质量;感谢 Rene Rivera 设计了新的 Boost 网页;感谢 Zoltan "cad" Juhasz 设计了新的 Boost 徽标。