Boost C++ 库

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

版本 1.39.0

版本 1.39.0

2009 年 5 月 2 日 12:00 GMT

文档

下载
平台文件
unixboost_1_39_0.tar.bz2
boost_1_39_0.tar.gz
windowsboost_1_39_0.7z
boost_1_39_0.zip

新库

  • Signals2: 来自 Frank Mori Hess 的托管信号 & 插槽回调实现(线程安全版本 2)。

更新的库

  • Asio:
    • 在内部哈希映射中实现桶数组的自动调整大小。 这是为了提高大量异步操作的性能,并减少少量操作的内存使用。 新的宏 BOOST_ASIO_HASH_MAP_BUCKETS 可用于调整桶数组的大小。
    • 为未使用计时器的 Windows IOCP 后端添加性能优化。
    • 防止区域设置影响 TCP 和 UDP 端点的格式 (#2682)。
    • 修复了当异步 SSL 操作的完成处理程序抛出异常时发生的内存泄漏 (#2910)。
    • 修复 io_control() 的实现,使其符合 IoControlCommand 的文档类型要求 (#2820)。
    • 修复 Asio 和 ncurses.h 之间的不兼容性 (#2156)。
    • 在 Windows 上,专门处理使用 ERROR_MORE_DATA 失败的重叠 ReadFile 调用。 这启用了一个技巧,即可以将 windows::stream_handle 与面向消息的命名管道一起使用 (#2936)。
    • 修复系统调用包装器,始终在成功时清除错误,因为 POSIX 允许成功的系统调用修改 errno (#2953)。
    • 如果定义了 BOOST_ASIO_DISABLE_SERIAL_PORT,则不包含 termios.h (#2917)。
    • 清理了一些更多的 MSVC 4 级警告 (#2828)。
    • 各种文档修复 (#2871)。
  • Flyweight:
    • refcounted 组件由于实现不正确而没有线程安全性,并且在重负载条件下可能会发生死锁。 这个问题已得到纠正。
  • Foreach:
    • 消除 gcc 上嵌套 FOREACH 循环的阴影警告
    • Intel-Win 工具集的移植性修复
  • Hash:
    • 删除哈希容器的已弃用标头。 其中包含的所有内容都包含在 <functional/hash.hpp> 中 (#2412)。
    • 其他细微更改,完整详细信息请参阅库 更改日志
  • Interprocess:
    • 提高了可移植性和错误修复。 完整详细信息请参阅库 更改日志
  • Intrusive:
    • 优化和错误修复。 完整详细信息请参阅库 更改日志
  • Program.Options:
    • 修复了多令牌选项 (#469)。
  • Proto:
    • 解决与标准 Linux 标头的不兼容问题。
    • 添加 proto::noinvoke<> 以阻止对象转换中的元函数调用。
  • PtrContainer:
    • 应用了来自 Trac 的错误修复。
  • Range:
    • 应用了来自 Trac 的错误修复。
  • Unordered:
    • 修复了 1.38 中的回归,该回归阻止了无序使用超过大约 150 万个桶 (#2975)。
    • 细微的实现更改,包括 #2756。 完整详细信息请参阅库 更改日志
  • Xpressive:
    • 解决导致纯虚函数调用运行时错误的 gcc 优化问题 (#2655)。

更新的工具

  • Boostbook:
    • 改进了 PDF 生成。
    • 初步 HTMLHelp 支持。
    • 添加标注图像的默认路径。
    • 在类概要中包含数据成员的 <purpose>
    • 修复了如果函数的 <purpose> 只是纯文本则不会显示的问题。
    • 支持 <headername><macroname> 中的 alt 标签。 如果标头或宏名称与标签的内容不同,则使用此标签 (#1977)。
    • 支持 <ulink> 标签中相对于 boost 根目录的链接,使用自定义 url,有关详细信息,请参阅链接文档 (#1166)。
    • 避免为函数、方法和宏文档生成仅大小写不同的文件名。
    • 静默运行 docbook 分块器,除非设置了 boostbook.verbose。 此参数将来可能会在其他地方使用。
    • 提供 1.1 DTD。
    • 填写一些缺失的参考文档(部分修复 #2153)。
    • Doxygen 集成的更改
      • 支持 \throw
      • 支持全局变量和枚举。
      • 更好地支持在函数和方法主体中编写的文档。
      • 解决 doxygen 1.5.8 的 xml 输出问题 (#2937)。
  • Quickbook:
    • 如果有任何错误,则返回错误代码和错误计数 (#1399)。
    • 在使用 cygwin 编译时,在编译行中同时支持 windows 和 cygwin 路径。
    • 修复了 C++ 和 Python 代码的一些问题
      • 对于不匹配的 '',正常失败。
      • 如果遇到任何意外字符,则发出警告并正确写出它们 (#1170)。
      • 修复了字符串中十六进制编码字符的错误 (#2860)。
    • 改进了测试,包括对预期失败的测试。
    • 为除 library 之外的文档类型生成有效的文档信息 (#2711)
      • 删除库特定的属性。
      • 将标题放在信息块之前。
    • 修复调用模板时的错误。
    • 使用 gcc 构建时减少警告。
    • 小的文档改进 (#1213, #2701)。
    • 修复了当 outdir 是当前目录时 xinclude 页面的错误 (#2921)。

测试的编译器

Boost 的主要测试编译器是

  • OS X
    • Intel Tiger 和 Leopard 上的 GCC 4.0.1
    • PowerPC Tiger 上的 GCC 4.0.1
  • Linux
    • Ubuntu Linux 上的 GCC 4.3.2。
    • Debian “unstable” 上的 GCC 4.3.3。
  • Windows
    • Windows XP 上的 Visual C++ 7.1 SP1、8.0 SP1 和 9.0 SP1。

Boost 的其他测试编译器包括

  • Linux
    • Red Hat Enterprise Linux 上的 Intel 9.0
    • Red Hat Enterprise Linux 上的 Intel 10.0
    • 64 位 Linux Redhat 5.1 Server 上的 Intel 10.1。
    • 64 位 Itanium 上的 Suse Linux 上的 Intel 10.1
    • Red Hat Enterprise Linux 上的 Intel 11.0
    • 64 位 Red Hat Enterprise Linux 上的 GCC 4.1.1、4.2.1
    • 64 位 Redhat Server 5.1 上的 GCC 4.1.2
    • 64 位 Itanium 上的 Suse Linux 上的 GCC 4.1.2
    • Red Hat Enterprise Linux 上的 GCC 3.4.3、GCC 4.0.1、GCC 4.2.4 和 GCC 4.3.2
    • Red Hat Enterprise Linux 上具有 C++0x 扩展的 GCC 4.3.2
    • OpenSuSE Linux 上的 GCC 4.2.1
    • Red Hat Enterprise Linux 上的 QLogic PathScale(TM) 编译器套件:3.1 版
    • 64 位 Red Hat Enterprise Linux 上的 GNU gcc 4.2.0 版(PathScale 3.2 驱动程序)
    • Red Hat Enterprise Linux 上的 Sun 5.9
  • OS X
    • Tiger 上的 Intel 9.1、10.1
    • Leopard 上的 Intel 10.1、11.0
    • Leopard 上的 GCC 4.2.1
  • Windows
    • Vista 上的 Visual C++ 9.0。
    • 在 XP 和 Windows Mobile 5.0 上,使用 STLport 5.2 的 Visual C++ 9.0。
    • Borland 5.9.3
    • Borland 6.1.0
    • XP 32 位上的 Intel C++ 11.0,带有 Visual C++ 9.0 后端。
    • Vista 64 位上的 Intel C++ 11.0,带有 Visual C++ 9.0 后端。(TODO: 最近没有)
    • Mingw 上的 GCC 4.3.3
  • AIX
    • AIX 5.3.0.40 版上的 IBM XL C/C++ Enterprise Edition for AIX,V10.1.0.0
  • NetBSD
    • NetBSD 4.0/i386 和 NetBSD 4.0/amd64 上的 GCC 4.1.2。
  • Solaris
    • Solaris 5.10 上的 Sun C++ 5.7、5.8、5.9
    • Solaris 5.10 上的 GCC 3.4.6

鸣谢

Beman Dawes、Eric Niebler、Rene Rivera 和 Daniel James 管理了此版本。