Boost C++ 库

...世界上最受推崇和专业设计的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu,《C++ 编码规范

版本 1.45.0

版本 1.45.0

2010年11月19日,格林尼治标准时间 16:00

文档

下载
平台文件
unixboost_1_45_0.tar.bz2
boost_1_45_0.tar.gz
windowsboost_1_45_0.7z
boost_1_45_0.zip

更新的库

  • Asio:
    • 修复了在基于 kqueue 的平台上,如果 io_service 在后台线程中运行,deadline_timer 可能永远不会触发的问题 (#4568)。
    • 修复了阻止有效使用 has_service<> 编译的 const-correctness 问题 (#4638)。
    • 修复了 MinGW 交叉编译问题 (#4491)。
    • 移除了对已弃用的 Boost.System 函数的依赖 (#4672)。
    • 确保正确传播 close()/closesocket() 失败 (#4573)。
    • 添加了对 InitializeCriticalSectionAndSpinCount 返回的错误的检查 (#4574)。
    • 添加了对 QNX 上硬件流控制的支持 (#4625)。
    • 如果可用,始终在 HP-UX 上使用 pselect() (#4578)。
    • 确保处理程序参数作为左值传递 (#4744)。
    • 修复了禁用线程支持时的 Windows 构建问题 (#4680)。
    • 修复了一个 Windows 特有的问题,即到期时间设置为未来 5 分钟以上的 deadline_timer 对象可能永远不会过期 (#4745)。
    • 修复了 BSD 平台上的 resolver 后端,以便空服务名称解析为端口号 0,根据文档 (#4690)。
    • 修复了读取操作,使其不接受类型为 const_buffers_1 的缓冲区序列 (#4746)。
    • 重新定义了 Protocolid 以避免与 Objective-C++ 关键字冲突 (#4191)。
    • 修复了当有许多活动的 deadline_timer 对象时可能发生的 vector 重新分配性能问题 (#4780)。
    • 修复了 kqueue 后端,使其可以在 NetBSD 上编译 (#4662)。
    • 修复了 64 位 Mac OS X 和 BSD 平台上的套接字 io_control() 实现 (#4782)。
    • 修复了一个 Windows 特有的问题,即 accept() 的失败被错误地视为成功 (#4859)。
    • 弃用了单独的编译头文件 <boost/asio/impl/src.cpp>,推荐使用 <boost/asio/impl/src.hpp> (#4560)。
  • 配置:
    • 添加了新的缺陷宏,BOOST_NO_VARIADIC_MACROSBOOST_NO_NUMERIC_LIMITS_LOWEST
    • 小修复 (#4670, #4563, #4474, #4508)。
  • Flyweight:
    • 修复了 Win32 平台中与 intermodule_holder 相关的挂起问题,该问题与 #4606 票证中描述的 Boost.Interprocess 问题有关。
    • 移除了与通过 std::exit 终止程序不兼容的内部断言。
  • Foreach:
    • 通过使 auto_any 构造函数显式化来修复歧义。
  • Fusion:
    • 添加了 BOOST_FUSION_ADAPT_ADTBOOST_FUSION_ADAPT_TPL_ADTBOOST_FUSION_ADAPT_ASSOC_ADTBOOST_FUSION_ADAPT_ASSOC_TPL_ADT
  • Graph:
    • 添加了 Daniel Trebbien 贡献的 Stoer-Wagner 最小割算法。
    • 添加了 W. P. McNeill 贡献的隐式图 (implicit_graph) 和 A* (astar_maze) 示例。
    • 为图属性添加了捆绑属性支持。
    • 修复了错误 #4556, #4622, #4631, #4715, #4753, #4758#4793 以及 Trac 中未列出的其他错误。
    • 修复了文档错误 #4731#4737
  • Interprocess:
  • 数学:
    • 添加了逆伽玛分布和逆卡方分布以及缩放逆卡方分布。
    • 添加了关于分布和函数名称中与 std 随机库潜在歧义的警告。
    • 文档的编辑修订,并添加了 FAQ。
  • 元状态机:
  • MultiArray:
    • 修复了错误 #3581, #3820, #3989, #4032,以及 Trac 中未列出的其他错误。
    • 添加了新的示例和测试用例。
  • Proto:
    • 降低了 proto::N 的值,修复了错误 #4602
    • 支持非 rtti 编译器
    • 修复了 proto::matches、数组类型和通配符模式的错误。
    • 使 Proto 在 MSVC 上使用 /clr 选项工作
    • 添加了 proto::eval 的 const 限定重载
  • Spirit: Spirit V2.4.1,有关详细信息,请参阅“新增功能”部分。
  • TypeTraits:
    • 添加了新的 traits add_rvalue_reference、add_lvalue_reference 和 common_type。
    • 对 is_signed、is_unsigned 和 is_virtual_base_of 进行了小修复。
  • uBLAS:
    • 已关闭的票证
    • 混合类型操作是可能的,并添加了新的测试(如 matrix<complex>+matrix<double>)。
    • 新功能
      • 一个新的 size<> 运算符可用。例如,size<1>(A+B) 给出矩阵 A 和 B 之和的行数。
  • Unordered:
    • 修复了从迭代器插入的问题,该迭代器在 operator* 中从 boost::unordered_mapboost::unordered_set 返回副本。
  • Wave:
    • 有关详细信息,请参阅 Changelog
  • Xpressive:
    • xpressive::as 处理宽字符 sub_match 对象,修复了错误 #4496

更新的工具

  • Boostbook:
    • 修复了代码块末尾注释的语法高亮器。
  • Quickbook:
    • 修复了命令行宏。
    • 嵌套代码片段。
    • 嵌套文档信息注释。
    • 恢复了 xml 转义文档信息,它破坏了一些文档文件(现在将在 1.6 中)。
    • 其他一些小的调整。有关更多信息,请参阅 更改日志

测试的编译器

Boost 的主要测试编译器是

  • Linux
    • GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.4.5, 4.5.1。
    • GCC, C++0x 模式: 4.3.4, 4.4.3, 4.5.0。
    • Intel: 10.1, 11.0, 11.1
    • Pathscale: 3.2。
  • OS X
    • GCC: 4.0.1, 4.2.1, 4.4
    • GCC, C++0x 模式: 4.4。
    • Intel: 11.1
  • Windows
    • Visual C++: 7.1, 8.0, 9.0 和 10.0。
    • GCC, mingw: 4.3.3。
  • FreeBSD
    • GCC: 4.2.1, 32 位。
    • GCC: 4.2.1, 64 位。

Boost 的附加测试编译器包括

  • Linux
    • GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.4.5, 4.5.0, 4.6.0 (开发版本)。
    • GCC, C++0x 模式: 4.3.4, 4.4.3, 4.5.0。
    • Intel: 10.1, 11.0, 11.1。
    • pgCC 10.1。
    • PathScale: 3.2。
    • Clang 来自 subversion。
  • OS X
    • Intel C++ Compiler: 10.1, 11.0, 11.1。
    • GCC: 4.0.1, 4.2.1, 4.4.4
    • GCC, C++0x 模式: 4.4.4
    • Clang 来自 subversion。
  • Windows
    • Borland: 5.9.3, 6.1.3 (2009), 6.2.1 (2010), 6.3.0
    • GCC, mingw: 4.3.3, 4.4.5, 4.5.1
    • GCC, mingw, C++0x 模式: 4.5.1
    • Visual C++: 7.1, 8.0, 9.0, 10.0
  • AIX
    • IBM XL C/C++ Enterprise Edition, V11.1.0.0。
  • FreeBSD
    • GCC 4.2.1, 64 位。
  • Solaris
    • Sun C++: 5.10。

致谢

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