Boost C++ 库

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

版本 1.45.0

版本 1.45.0

2010年11月19日 16:00 GMT

文档

下载
平台文件
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 正确性问题(#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)。
  • Config:
    • 添加了新的缺陷宏,BOOST_NO_VARIADIC_MACROSBOOST_NO_NUMERIC_LIMITS_LOWEST
    • 次要修复(#4670#4563#4474#4508)。
  • Flyweight:
    • 修复了 Win32 平台中与 Boost.Interprocess 问题(在工单 #4606 中描述)相关的 intermodule_holder 的挂起问题。
    • 删除了与通过 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:
  • Math:
    • 添加了逆伽马分布、逆卡方分布和缩放逆卡方分布。
    • 添加了关于分布和函数名称与 std random 库之间潜在歧义的警告。
    • 文档的编辑修订,并添加了常见问题解答。
  • Meta State Machine:
  • MultiArray:
    • 修复了错误 #3581#3820#3989#4032 以及 Trac 中未包含的其他错误。
    • 添加了新的示例和测试用例。
  • Proto:
    • 降低 proto::N 的值,修复了错误 #4602
    • 支持非 rtti 编译器
    • 修复了 proto::matches、数组类型和通配符模式的错误。
    • 使 Proto 可以在带有 /clr 选项的 MSVC 上工作
    • 添加 proto::eval 的 const 限定重载
  • Spirit: Spirit V2.4.1,有关详细信息,请参阅“新增功能”部分。
  • TypeTraits:
    • 添加了新的特征 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:
    • 修复了在 boost::unordered_mapboost::unordered_set 中从 operator* 以副本形式返回的迭代器插入的问题。
  • Wave:
  • 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。
    • 来自 subversion 的 Clang。
  • OS X
    • Intel C++ 编译器:10.1、11.0、11.1。
    • GCC:4.0.1、4.2.1、4.4.4
    • GCC,C++0x 模式:4.4.4
    • 来自 subversion 的 Clang。
  • 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 管理了此版本。