Boost C++ 库

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

版本 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)
    • BOOST_ASSERT 替换了 C 风格的 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
    • 修复了刷新回归问题 (#4590)。
  • Iterator:
    • 修复了 implicit_cast 的问题 (#3645)
  • Math:
    • 添加了 Wald、逆高斯和几何分布。
    • 添加了有关配置宏的信息。
    • 添加了对 mpreal 作为实数类型的支持。
  • Meta State Machine:
  • Optional:
    • 更新了测试结果,其中包含有关预期失败的信息 (#2294)
  • Pool:
    • 现在可以为池设置 max_size (#2696)
    • boost/pool/pool.hpp 使用 reinterpret_cast 代替 static_cast (#2941)
    • boost::pool_allocator 现在可以与向量的向量一起使用 (#386)
    • Boost 池现在与 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++ 编译器: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++ 企业版,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 管理了此版本。