Boost C++ 库

...世界上最受推崇和专业设计的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ Coding Standards

版本 1.46.0

版本 1.46.0

2011年2月21日 20:36 GMT

文档

下载
平台文件
unixboost_1_46_0.tar.bz2
boost_1_46_0.tar.gz
windowsboost_1_46_0.7z
boost_1_46_0.zip

新库

  • Icl: 区间容器库,区间集合和映射以及关联值的聚合,来自 Joachim Faulhaber。

更新的库

  • Array:
    • 添加了对 cbegin/cend 的支持 (#4761)
    • 修复了 Sun 编译器的问题 (#4757)
  • Asio:
    • 修复了在 64 位平台上使用 ip::address_v4::broadcast() 时发生的整数溢出问题。
    • 修复了旧版本 Linux 内核(其中使用 epoll 但不支持 timerfd)上的问题,该问题阻止了在程序运行一段时间后及时传递 deadline_timer 处理程序 (#5045)。
  • Bind:
    • make_adaptable 现在已记录在文档中 (#4532)
  • Concept Check:
    • 修复了自赋值的警告 (#4918)
  • Filesystem:
    • 库的版本 3 现在是默认版本。
    • IBM vacpp: 修复了影响 iterator_facade 的编译器错误。 (#4912)
    • 验证、澄清并记录 <boost/config/user.hpp> 可用于指定 BOOST_FILESYSTEM_VERSION。 (#4891)
    • 将 C 风格的 assert 替换为 BOOST_ASSERT
    • 取消弃用 unique_path()。相反,添加注释提及缺乏线程安全性和可能更改 cwd 的解决方法。 unique_path() 太方便了,不能弃用!
    • 清除了几个 GCC 警告。
    • 更改 V2 代码以使用 BOOST_THROW_EXCEPTION
    • Windows: 修复了 status() 以正确报告非符号链接重分析点。
    • recursive_directory_iterator 添加 symlink_option,允许控制递归到目录符号链接中。请注意,默认设置已更改为不递归到目录符号链接中。
    • 参考文档清理,包括修复缺失和损坏的链接,以及添加缺失的函数。
    • 各种实现代码清理。
  • Fusion:
    • vector 复制构造函数现在在不同平台上以相同的顺序复制序列成员 (#2823)
  • Graph:
  • Hash:
    • 支持 std::type_index (#4756)。
    • 避免 -Wconversion 警告。
  • Iostreams:
    • 使用 BOOST_ASSERT 而不是 assert
    • 修复了 flush 回归问题 (#4590)。
  • Iterator:
    • 修复了 implicit_cast 的问题 (#3645)
  • Math:
    • 添加了 Wald、Inverse Gaussian 和几何分布。
    • 添加了有关配置宏的信息。
    • 添加了对 mpreal 作为实数类型 的支持。
  • Meta State Machine:
  • Optional:
    • 更新了测试结果,其中包含有关预期失败的信息 (#2294)
  • Pool:
    • 现在可以为池设置 max_size (#2696)
    • boost/pool/pool.hpp 使用 reinterpret_cast 而不是 static_cast (#2941)
    • boost::pool_allocator 现在可以与 vector 的 vector 一起使用 (#386)
    • Boost pool 现在与 Microsoft 内存泄漏检测兼容 (#4346)
  • Program Options:
    • 修复了文档中示例的错误 (#3992, #4858)
    • 现在将 argv 作为 const (#3909)
  • Proto:
    • 重大更改: boost/proto/core.hpp 不再定义 functional::pop_frontfunctional::reverse,它们已移动到 boost/proto/functional 下的自己的头文件中
    • 为更多 Fusion 算法(包括 fusion::at)添加可调用包装器;并为一些 std 实用程序(如 make_pairfirstsecond)添加可调用包装器,所有这些都在新的 boost/proto/functional 目录下
    • 允许从语法中单独指定转换
    • proto::matches 保留特定于域的表达式包装器
    • 修复 proto::and_ 转换中 operator, 的 ADL 问题
    • 修复涉及多个域的表达式中的语法检查处理 (#4675)
    • 修复 proto::display_expr 中不明确的 operator<< (#4910)
    • fusion::is_sequence 对 Proto 表达式回答 true (#5006)
    • 消除 boost/proto/fusion.hpp 中的 -Wundef GCC 警告 (#5075)
  • Signals:
    • gcc 警告清理 (#4365)
  • Spirit:
    • Spirit V2.4.2,有关详细信息,请参阅“新增功能”部分。
  • Tokenizer:
    • isspace/ispunct 使用了错误的字符类型调用 (#4791)
  • Unordered:
    • 避免将 operator& 与值类型一起使用。
    • 避免 -Wconversion 警告。
  • Wave:
    • 有关详细信息,请参阅 Changelog

更新的工具

  • Boostbook:
    • 更好地支持根元素上的属性 - 包括 lang
  • Inspect:
    • 检查 Boost 头文件是否未使用 C 的 assert 宏。
  • Quickbook:
    • 在文档信息中添加了对 lang 属性的支持。
    • 改进的锚点。
    • 在条件短语中支持 importincludexinclude
    • 使用 Filesystem 3。

已测试的编译器

Boost 的主要测试编译器是

  • Linux
    • GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.4.5, 4.5.2,
    • GCC, C++0x 模式: 4.3.4, 4.4.3, 4.5.0, 4.5.2
    • Intel: 10.1, 11.0, 11.1
    • Clang: 2.8
    • 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.4.0。
  • FreeBSD
    • GCC: 4.2.1, 64 位。

Boost 的其他测试编译器包括

  • Linux
    • GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.3, 4.4.5, 4.5.0, 4.5.2
    • GCC, C++0x 模式: 4.3.4, 4.4.3, 4.5.0, 4.5.2
    • pgCC 11.1
    • Intel: 10.1, 11.0, 11.1
    • PathScale: 3.2, 4.0
    • Visual Age C++ 10.1
    • 来自 subversion 的 Clang
  • 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
    • 来自 subversion 的 Clang
  • Windows
    • Visual C++: 7.1, 8.0, 9.0, 10.0
    • 带有 STLport 的 Visual C++: 9.0
    • 带有 STLport 的 Visual C++, Windows Mobile 5: 9.0
    • GCC, mingw: 4.4.0, 4.5.1, 4.6.0
    • GCC, mingw, C++0x 模式: 4.5.1
    • Borland: 6.1.3 (2009), 6.2.1 (2010)
  • 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 管理了此版本。