Boost C++ 库

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

版本 1.38.0

版本 1.38.0

2009 年 2 月 8 日 12:00 GMT

文档

下载
平台文件
unixboost_1_38_0.tar.bz2
boost_1_38_0.tar.gz
windowsboost_1_38_0.7z
boost_1_38_0.zip

新库

  • Flyweight:
    • 管理大量高度冗余对象的设计模式,来自 Joaquín M López Muñoz。
  • ScopeExit:
    • 在作用域退出时执行任意代码,来自 Alexander Nasonov。
  • Swap:
    • 增强的通用交换函数,来自 Joseph Gauterin。

更新的库

  • Accumulators:
    • 添加 rolling_sumrolling_countrolling_mean 累加器。
  • Any:
    • operator= 使用按值参数 (#2311)。
  • Asio:
    • 改进了与某些 Windows 防火墙软件的兼容性。
    • 确保传递给 windows::overlapped_ptr::complete() 的参数被正确传递给完成处理程序 (#2614)。
    • 修复了 QNX 上的链接问题和多播失败问题 (#2504, #2530)。
    • 修复了 MinGW / g++ 3.4.5 上 SSL 支持中的编译错误。
    • 如果 Linux 上运行时 eventfd 不可用,则回退到使用管道进行通知 (#2683)。
    • 各种次要错误和文档修复 (#2534, #2541, #2607, #2617, #2619)
  • Config:
    • 添加新宏 BOOST_NO_STD_UNORDERED 和 BOOST_NO_INITIALIZER_LISTS。
    • 添加了 Codegear 编译器支持。
    • 将 Dragonfly 添加到 BSD 系列配置中。
    • 更新了 MSVC 的二进制 ABI 设置,以匹配 64 位构建时的编译器默认设置。
    • 识别来自 MS 和 Intel 的最新编译器。
  • Date_Time:
    • 通过新的格式化程序 %0 添加了对格式化和读取超过 24 小时的时间持续时间的支持。
    • 从公共包含目录中删除了 testfrmwk.hpp 文件。
    • 修复了几个错误和编译错误。
    • 有关完整详细信息,请参阅更改历史记录
  • Exception:
  • Filesystem:
    • 修复了类 POSIX 系统上的 native(name) 测试失败问题。
    • 多项错误修复 (#2543, #2224, #2531, #1840, #2542)。
  • Graph:
    • 添加了用于旅行商问题近似 (metric_tsp_approx) 和资源受限最短路径 (r_c_shortest_paths) 的新算法。
    • adjacency_list 中支持命名顶点。
    • 许多错误修复 ( #416, #1622, #1700, #2209, #2392, #2460, 和 #2550)
  • Hash:
    • boost/functional/detail/container_fwd.hpp 已移动到 boost/detail/container_fwd.hpp。当前位置已弃用。
    • 有关更多详细信息,请参阅库变更日志
  • Interprocess:
    • 更新了文档以显示右值引用函数而不是模拟函数。
    • 更多不可复制的类现在是可移动的。
    • 移动构造函数和赋值现在将移动的对象留在默认构造状态,而不仅仅是交换内容。
    • 多项错误修复 (#2391, #2431, #1390, #2570, #2528)。
  • Intrusive:
    • 新的基于 treap 的容器:treap、treap_set、treap_multiset。
    • 修正了基于 Windows 的 64 位编译器的编译错误。
    • 修正了容器构造函数中的异常安全错误。
    • 更新了文档以显示右值引用函数而不是模拟函数。
  • Lexical Cast:
    • 更改为在定义 BOOST_NO_TYPEID 时无需 RTTI 即可工作 (#1220)。
  • Math:
    • 添加了 Johan Råde 优化的浮点分类例程。
    • 修复了代码,使其可以在 GCC 的 -pedantic 模式下编译(错误报告 #1451)。
  • Multi-index Containers: 某些冗余类型定义已被弃用。有关更多信息,请查阅库发行说明
  • Proto:
    • 修复了二元运算符的 SFINAE 问题(Bug 2407)。
    • 修复了具有 >3 个参数的可调用转换的 proto::call 转换。
    • result_of::value 更改了按值数组终端的行为。
    • unpack_expr 仅需要前向序列,而不是随机访问序列。
    • 弃用旧版未记录的 BOOST_PROTO_DEFINE_(VARARG_)FUNCTION_TEMPLATE 宏。
    • 添加 BOOST_PROTO_REPEATBOOST_PROTO_LOCAL_ITERATE 宏以帮助进行重复代码生成
    • 支持标记类型不是 proto::tag::terminal 的空元表达式
    • 允许 proto::or_proto::and_ 的 0 参数和 1 参数变体
  • Regex:
    • 重大更改:使用 Perl 正则表达式语法时,现在允许空表达式和空替代项。添加此更改是为了 Perl 兼容性,当设置新的 syntax_option_type no_empty_expressions 时,将保留旧行为并禁止空表达式。这是问题 #1081
    • 在格式字符串中添加了对 Perl 样式 ${n} 表达式的支持(问题 #2556)。
    • 添加了对访问正则表达式字符串中子表达式位置的支持(问题 #2269)。
    • 修复了编译器兼容性问题 #2244, #2514, 和 #2458
  • Thread:
    • 不再捕获线程中未处理的异常,因为调试器无法识别线程中未处理异常的原因。未处理的异常仍将导致应用程序终止。
  • TR1:
    • 添加了对 TR1 数学函数和无序容器的支持。
  • Type Traits:
    • 添加了对 Codegear 内在函数的支持。
    • 对警告抑制和 alignment_of 代码进行了微调。
  • Unordered:
    • 使用 boost::swap
    • 使用更大的素数列表来选择存储桶的数量。
    • 使用 对齐存储 来存储类型。
    • 在可用时添加了对 C++0x 初始化列表的支持。
    • 有关更多详细信息,请参阅库变更日志
  • Xpressive:
    • basic_regex 获取嵌套的 syntax_option_flagsvalue_type typedef,以与 std::basic_regex 兼容
    • 移植到 Proto v4;Proto v2 在boost/xpressive/proto已被删除。
    • regex_error 继承自 boost::exception

其他更改

  • 此版本中引入了对使用 CMake 构建 Boost 的实验性支持。有关更多详细信息,请参阅 wiki,讨论正在 Boost-cmake 邮件列表中进行。
  • 修复了多个文件的 subversion 属性。最值得注意的是,unix shell 脚本应始终具有 unix 行尾,即使在 windows 包中也是如此。

测试编译器

Boost 的主要测试编译器是

  • OS X
    • GCC 4.0.1 on Intel OS X 10.4.10, 10.5.2
    • GCC 4.0.1 on PowerPC OS X 10.4.9
  • Linux
    • GCC 4.3.2 on Ubuntu Linux。
    • GCC 4.3.3 on Debian "unstable"。
  • HP-UX
    • GCC 4.2.1 on HP-UX 64 位。
    • HP C/aC++ B3910B A.06.17 on HP-UX 64 位。
  • Windows
    • Visual C++ 7.1 SP1、8.0 SP1 和 9.0 SP1 on Windows XP。

Boost 的其他测试编译器包括

  • Linux
    • GCC 4.1.1, 4.2.1 on 64 位 Red Hat Enterprise Linux
    • GCC 4.1.2 on 64 位 Redhat Server 5.1
    • GCC 3.4.3、GCC 4.0.1、GCC 4.2.4 和 GCC 4.3.2 on Red Hat Enterprise Linux
    • GCC 4.3.2 with C++0x extensions
    • GCC 4.2.1 on OpenSuSE Linux
    • pgCC 8.0-0a 64 位目标 on Red Hat Enterprise Linux
    • QLogic PathScale(TM) Compiler Suite: Version 3.1 on Red Hat Enterprise Linux
  • OS X
    • Intel 9.1, 10.0 on OS X 10.4.10
    • Intel 10.1, 11.0 on OS X 10.5.2
  • Windows
    • Visual C++ 9.0 on Vista EE 64 位。
    • Visual C++ 9.0 express on Vista 32 位。
    • Visual C++ 9.0 on XP 32 位。
    • Visual C++ 8.0,使用 STLport,on XP 和 Windows Mobile 5.0
    • Visual C++ 7.1,使用 STLport,on XP
    • Borland 5.9.3
    • Borland 6.1.0
    • Intel C++ 11.0,使用 Visual C++ 9.0 后端,on XP 32 位。
    • Intel C++ 11.0,使用 Visual C++ 9.0 后端,on Vista 64 位。
    • Comeau 4.3.10.1 beta 2,使用 Visual C++ 9.0 后端。
    • GCC 3.4.4,on Cygwin
  • AIX
    • IBM XL C/C++ Enterprise Edition for AIX, V10.1.0.0, on AIX Version 5.3.0.40
  • FreeBSD
    • GCC 4.2.1 on FreeBSD 7。
  • NetBSD
    • GCC 4.1.2 on NetBSD 4.0/i386 和 NetBSD 4.0/amd64。
  • QNX
    • QNX Software Development Platform 6.4.0 x86
  • Solaris
    • Sun C++ 5.7, 5.8, 5.9 on Solaris 5.10
    • GCC 3.4.6 on Solaris 5.10

致谢

Beman Dawes、Eric Niebler、Rene Rivera 和 Daniel James 管理了此版本。感谢 Vicente Botet 帮助编译这些发行说明。