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 库: 编写按名称接受参数的函数:当函数有多个具有有用默认值的参数时尤其有用,因为命名参数可以按任何顺序传递。
  • Pointer Container 库: 用于存储堆分配多态对象的容器,以简化 OO 编程,来自 Thorsten Ottosen。
  • Wave: 符合标准的 C99/C++ 预处理器功能的实现,封装在一个易于使用的迭代器界面之后,来自 Hartmut Kaiser。

更新的库

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

    注意:所有没有参数或只有一个 unsigned int 参数构造或播种的 mersenne_twister 的测试向量都将失效。

  • Range 库:iterator range 略微添加了方便函数,如 front(), back()operator[]()
  • Regex 库:
    • 重写的前端解析器现在支持 (?imsx-imsx) 构造,以及 lookbehind 断言和条件表达式。
    • Thin wrapper 类改进了与 MFC/ATL 代码的集成。
    • 通过 ICU 库的完全(可选)Unicode 支持。 有关这些和其他小更改的更多信息,请参阅 regex 历史记录页面
  • Serialization 库:
    • DLL 版本。
    • 自动链接。
    • 变体的序列化。
    • 改进了共享指针的序列化。
  • Signals 库: 添加了 slot 阻塞/解除阻塞,来自 Frantz Maerten。 Robert Zeh 对信号调用性能进行了巨大改进。

支持的编译器

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

  • Apple GCC 3.x 在 Mac OS X 上。
  • Borland C++ 5.6.4 在 Windows 上。
  • GNU C++ 2.95.3 (带和不带 STLport)、3.2.x.、3.3.x、3.4.x、4.0.x 在 Windows、Linux 和 Solaris 上。
  • Intel C++ 8.1、9.0 在 Windows、Linux 上。
  • Metrowerks CodeWarrior 8.3、9.4、9.5 在 Mac OS X 和 Windows 上。
  • 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 徽标。