Boost
发布
arrow_drop_down
prior release (1.53.0)
2013 年 4 月 13 日
依赖项
此版本中, 添加了 5 个依赖项 (涉及 4 个库),并 移除了 1 个依赖项 (涉及 1 个库)。
平台 文件 SHA256 哈希
Unix boost_1_53_0.tar.bz2 f88a0....b9196
boost_1_53_0.tar.gz 7c4d1....d4c39
Windows boost_1_53_0.7z 65906....f9d8a
boost_1_53_0.zip f9062....d76c0

版本 1.53.0

2013 年 2 月 4 日 18:29 GMT

文档

新库

  • Atomic:
    • C++11 风格的 atomic<>,由 Helge Bahmann 提供,Tim Blechmann 维护。
  • Coroutine:
    • 库,由 Oliver Kowalke 提供。
  • Lockfree:
    • 数据结构,由 Tim Blechmann 提供。
  • Multiprecision:
    • 浮点数、整数和有理数运算的扩展精度算术类型,来自 John Maddock 和 Christopher Kormanyos。
  • Odeint:
    • 求解常微分方程,来自 Karsten Ahnert 和 Mario Mulansky。

新闻

此版本包含对 Boost.Locale 的 ticket #7743 的修复。更多详情,请参阅 安全公告

更新的库

  • 算法:
    • 修复了评论中的非 ASCII 字符(#7781)。
    • 更新了 Knuth-Morris-Pratt 文档(#7656)。
  • Array:
    • 增加了对 boost::get 和 std::get 的支持(#7652
  • Asio:
    • 修复了一些 64 位到 32 位转换警告(#7459)。
    • 修复了文档和注释中的一些小错误(#7761)。
    • 修复了 basic_socket::get_option 文档中嵌入的示例错误(#7562)。
    • 将 SSL_CTX 选项从 int 改为 long,以匹配 OpenSSL(#7209)。
    • 更改为使用 _snwprintf 以解决由于 MinGW 近期版本中 swprintf 签名更改而导致的编译错误(#7373)。
    • 修复了在 Windows 上关闭 io_service 线程池时,由于工作负载耗尽可能发生的死锁(#7552)。
    • 为错误类别启用了 noexcept 限定符(#7797)。
    • 将 UNIX 域套接字示例更改为将 accept 的错误视为非致命错误(#7488)。
    • 添加了一个小的块回收优化,以改善默认内存分配行为。
  • Bimap:
    • 重构了 map_view_iterator 以改善错误消息。
    • 修复了在使用带有 info 的关系时 replace_(left/right/key/data) 的错误。
    • 修复了 vector_of 和 list_of 视图的 assign(size_type,value_type) 错误。
    • 修复了 vector_of 视图的 operator[](size_type)at(size_type) 函数的返回值。
  • Chrono:
    • 已弃用
      • Boost.Chrono 1.2.x 中包含的 chrono i/o 版本已在 2.0.0 版本中完全重构。
      • chrono I/O:__duration_short、__duration_long 操作符已弃用。您应该使用参数化的 __duration_fmt 或重命名的 __duration_symbol 和 __duration_prefix 操作符。
      • chrono I/O:__duration_punct<> facet 已弃用。您应该使用 __get_duration_style 自由函数来获取信息,并使用 __duration_units facet 进行本地化。
      • 当 BOOST_CHRONO_VERSION==2 时,上述已弃用的函数将不可用。
    • 修复
      • #7546 time_point<system_clock> 输出版本 2 编译失败
      • #7547 time_point<system_clock> 输入版本 2 编译失败
      • #7868 chrono_io 解析时间不正确(1.53 和 1.52)
  • Container:
    • 修复了错误 #7650
    • 提高了 vector 的插入性能。
    • 再次更改了实验性的多重分配接口以提高性能(仍处于实验阶段)。
    • 添加了无异常支持,以便愿意在编译器中禁用异常的用户使用。
    • 修复了 GCC -Wshadow 警告。
    • 将已弃用的 BOOST_NO_XXXX 替换为较新的 BOOST_NO_CXX11_XXX 宏。
  • Context:
    • 添加了对 iOS (ARM) 和 MacOS X (x86, 32位) 的支持。
    • 支持 Win32 上的 SEH 覆盖保护。
  • 几何:
    • 错误修复
      • 避免生成具有内部环且小于最小尺寸(例如一个或两个点)的输出多边形。
      • geometry::disjoint 用于退化线段(由 Karsten Ahnert 补丁)。
      • geometry::difference 中由于未处理切线问题而导致的错误,由 H2 报告。
      • 修复了 geometry::for_each 与 Lambda 表达式一起使用时的错误。
      • 修复了 geometry::comparable_distance 点-线串(以及-范围,-多边形)的错误。
    • 附加功能
      • geometry::disjoint 的组合:点/环,点/多边形,点/多重多边形。
      • geometry::intersects 的组合:点/环,点/多边形,点/多重多边形。
    • 内部更改
      • 特殊化/未实现更新,适用于各种算法(与早期版本一样,这些更改仍在继续;它们负责简化结构、改进错误报告和自动化文档)。
      • 单元测试中的修复。
  • GIL:
    • 修复了自赋值警告(#4919)。
  • :
    • 修复了 Trac 中的以下错误:#3468, #4386, #5269, #7428, #7457, #7467, #7600, #7648, #7684, #7728, #7741, #7766, #7771, #7773, #7780, #7787, #7801 以及其他不在 Trac 上的错误。
    • 增加了对读取包含多个图的 GraphML 文件的支持。
    • 为树增加了 A* 搜索版本,当可以接受重复访问同一个顶点时,无需颜色图。
    • 添加了 VF2 子图同构算法(由 Flavio De Lorenzi 贡献)。
  • 哈希:
    • 添加了对 boost::int128_typeboost::uint128_type 的支持(可用时)。
    • 在已知具有标准浮点函数的平台上,不使用自动检测(#7221#7470)。
  • Interprocess:
    • 修复了 GCC -Wshadow 警告。
    • 实验性多重分配接口已再次改进和更改。仍然不稳定。
    • 将已弃用的 BOOST_NO_XXXX 替换为较新的 BOOST_NO_CXX11_XXX 宏。
    • ABI 破坏性更改:更改了节点池分配器的内部结构以提高效率。
    • 修复了错误 #7795
  • Intrusive:
    • 修复了错误 #7174, #7529, #7815
    • 修复了 GCC -Wshadow 警告。
    • 在多个侵入式容器构造函数中添加了缺失的 explicit 关键字。
    • 将已弃用的 BOOST_NO_XXXX 替换为较新的 BOOST_NO_CXX11_XXX 宏。
    • 小幅文档修复。
  • Lexical cast:
    • 用户定义类型的新字符类型检测算法 #6786
    • 文档更新(#7582, #7831)。
    • 修复了 std::array 的错误 #7799
    • 修复了使用 -ftrapv 进行编译以及数值到数值转换的错误 #7814
  • Locale:
    • 与安全相关的错误修复,一些无效的 UTF-8 序列被接受为有效 #7743
    • 使用了无效的 Windows 代码页名称 #7386
    • 修复了因 Doxygen 格式错误导致的文档缺失 #7734
    • 修复了某些地方缺失的 std:: #7701
    • 拼写、语法、打字错误修复 #7368, #7762
  • 数学:
    • 修复了问题 #7325, #7415, #7416, #7183, #7649, #7694, #4445#7492
    • 修复了在两样本学生 t 示例中计算合并标准差的错误 #7402
    • 改进复数 acos/asin/atan,参见 #7290, #7291
    • 在某些特殊情况下改进了 cyl_bessel_j 和 gamma_p/gamma_q 的精度,感谢 Rocco Romeo 的建议。
    • 在整数阶的 Bessel J 和 Y 中改进了精度,感谢 Rocco Romeo 的建议。
  • MinMax:
    • 修复了逗号运算符的误用(#7752)。
    • 更新了文档以修复断开的链接(#7751)。
  • Move:
    • 更好的头文件隔离(错误 #6524)。
    • 小幅文档修复
    • 将已弃用的 BOOST_NO_XXXX 替换为较新的 BOOST_NO_CXX11_XXX 宏。
    • 修复了 #7830, #7832
  • 多边形:
    • 修复
      • #6366 polygon_90 类型 boost::polygon::contains 中的错误。
      • #7678 多个 #include 导致 bool boost::polygon::belongs(...) 的多重定义。
    • 内部更改
      • 重构了点/线段/区间数据/概念/特征。
      • 添加了点和区间数据/概念/特征的单元测试。
      • 简化了 transform.hpp 以仅在 2D 中操作。
      • 移除了 point_3d 数据/概念/特征。
  • Random:
    • 现在可以与禁用异常一起编译(#5399)。
  • 范围:
  • Ratio:
    • 修复
      • #7616 br_mul::nan - 警告 C4293: '<<':移位计数为负或太大,未定义行为。
  • #7744, #7644。Regex: 修复了问题。
  • 智能指针:
    • 新功能
      • Glen Fernandes 提供了数组的 make_shared 和 allocate_shared 实现。它们实现了对数组的单次分配,该数组可以使用构造函数参数或初始化列表进行初始化,并提供了用于默认初始化和无值初始化的重载。有关更多信息,请参阅 '数组的 make_shared 和 allocate_shared' 页面。
      • 现在可以使用 shared_ptr 来保存指向动态分配数组的指针。这是通过使用数组类型(T[]T[N])作为模板参数来实现的。
      • 在 C++11 编译器上,智能指针现在使用 explicit operator bool。这可能会破坏将智能指针传递给接受 bool 的函数,或者从具有 bool 返回类型的函数返回智能指针的代码。在这种情况下,请使用 p != 0!!p
  • StringAlgo:
    • 修复了无法找到重叠模式的错误(#7784)。
    • 消除了对 insert 的一些调用歧义(#7346)。
  • Thread:
    • 已弃用功能
      • 自 Boost 1.53 起已弃用的功能将在 Boost 1.58 之前可用。
      • C++11 合规性:packaged_task<R> 已弃用,请改用 packaged_task<R()>。
      • #7537 弃用 Mutex::scoped_lock 和 scoped_try_lock 以及 boost::condition。
    • 新功能
      • #6270 C++11 合规性:添加可移动调用和可移动参数的线程构造函数。
      • #7279 C++11 合规性:在系统相关函数中添加 noexcept。
      • #7280 C++11 合规性:添加 promise::...at_thread_exit 函数。
      • #7281 C++11 合规性:将 ArgTypes 添加到 packaged_task 模板。
      • #7282 C++11 合规性:添加 packaged_task::make_ready_at_thread_exit 函数。
      • #7412 C++11 合规性:添加可移动调用和可移动参数的 async。
      • #7413 C++11 合规性:当启动策略为 deferred 时添加 async。
      • #7414 C++11 合规性:future::get 后置条件应为 valid()==false。
      • #7422 提供一个零开销性能损失的条件变量。
      • #7444 Async:添加 make_future/make_shared_future。
      • #7540 Threads:添加一个在销毁时 join 线程的辅助类。
      • #7541 Threads:添加一个在销毁时 join 的线程包装类。
      • #7575 C++11 合规性:由 async 创建的 future 应在析构函数中 "join"。
      • #7587 Synchro:添加 strict_lock 和 nested_strict_lock。
      • #7588 Synchro:将 locks.hpp 分拆到多个文件中以减少依赖。
      • #7590 Synchro:添加基于 Boost.ConceptCheck 的 lockable 概念检查器。
      • #7591 添加可与 enable_if 一起使用的 lockable 特征。
      • #7592 Synchro:添加一个 null_mutex,它是一个无操作且符合 UpgardeLockable 模型。
      • #7593 Synchro:添加一个 externally_locked 类。
      • #7594 Threads:允许禁用线程中断。
    • 修复的 Bug
      • #7464 BOOST_TEST(n_alive == 1); 由于回归测试工具中的竞态条件而失败。
      • #7657 如果反复使用 condition_variable 的 notify_one 或 notify_all 方法,则会导致严重的性能和内存消耗下降。
      • #7665 this_thread::sleep_for 在线程中不再使用 steady_clock。
      • #7668 thread_group::join_all() 应检查其线程是否可 join。
      • #7669 thread_group::join_all() 应捕获 resource_deadlock_would_occur。
      • #7671 在 iOS 上包含 boost/thread.hpp 头文件时出错。
      • #7672 lockable_traits.hpp 语法错误:“defined” 令牌拼写错误。
      • #7798 boost::future set_wait_callback 线程安全问题。
      • #7808 this_thread::sleep_for 和 this_thread::sleep_until 的效果描述不正确。
      • #7812 返回:如果调用因指定的 rel_time 时间段已过而返回,则为 cv_status::no_timeout,否则为 cv_status::timeout。
      • #7874 编译警告:thread.hpp:342: 警告:类型属性仅在类型定义时生效。
      • #7875 BOOST_THREAD_THROW_IF_PRECONDITION_NOT_SATISFIED 不应默认启用。
      • #7882 condition_variable::wait(unique_lock<mutex>&) 的异常文本错误。
      • #7890 thread::do_try_join_until() 缺少返回类型。
  • Unordered:
    • 移除对旧的预标准可变参数对构造函数和相等实现的 C++ 支持。两者自 Boost 1.48 起已弃用。
    • 更多的内部实现更改,包括更简单的 erase 实现,并移除了更多已弃用的配置宏。
  • Utility:
    • 添加了 string_ref,一个非拥有 contiguous character 序列的引用。
  • Variant:
    • 添加了右值构造函数和右值赋值运算符(仅适用于 C++11 兼容编译器)。现在可以使用仅移动类型(#7620, #7718)来使用库。
  • Wave:
    • 有关详细信息,请参阅 Changelog
  • xpressive:
    • 适应近期的智能指针更改(#7809)。

更新了工具

测试的编译器

Boost 的主要测试编译器是:

  • Linux
    • GCC: 4.1.2, 4.2.4, 4.4.4, 4.5.3, 4.6.3, 4.7.2
    • GCC, C++11 模式: 4.4.4, 4.5.3, 4.6.3, 4.7.2
    • Intel: 11.1, 12.1
    • LLVM Clang: 2.8
    • LLVM Clang, with libc++: 3.2
  • OS X
    • GCC: 4.4.7
    • GCC, C++11 模式: 4.4.4
    • Intel: 11.1, 12.0
  • Windows
    • Visual C++: 9.0, 10.0
  • FreeBSD
    • GCC: 4.2.1, 32 位和 64 位

Boost 的其他测试编译器包括:

  • Linux
    • Cray: 4.6.1
    • Clang: 从 subversion
    • LLVM Clang, with libc++: 3.2
    • GCC: 4.2.4, 4.4.4, 4.5.3, 4.6.3, 4.7.1
    • GCC, C++11 模式: 4.4.4, 4.5.3, 4.6.3, 4.7.1, 4.7.2
    • pgCC: 11.9
    • Intel: 10.1, 11.1, 12.1
    • Intel, C++11 模式: 13.0.1
    • Visual Age
  • OS X
    • Clang: 从 subversion
    • Clang, C++11 模式: 从 subversion
    • Intel: 11.1, 12.0
    • GCC: 4.4.7
    • GCC, C++11 模式: 4.4.4
  • Windows
    • Visual C++: 10.0, 11.0
    • Visual C++ with STLport: 9.0
    • Visual C++, Windows Mobile 5, with STLport: 9.0
  • AIX
    • IBM XL C/C++ Enterprise Edition: V12.1.0.1

致谢

Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus 和 Marshall Clow 管理了此次发布。

贡献者

Marshall Clow
Marshall Clow
贡献者
Daniel James
Daniel James
贡献者
Lorenzo Caminiti
Lorenzo Caminiti
贡献者
Joachim Faulhaber
Joachim Faulhaber
贡献者
Ion Gaztañaga
Ion Gaztañaga
贡献者
Peter Dimov
Peter Dimov
贡献者
Vicente J. Botet Escriba
Vicente J. Botet Escriba
贡献者
John Maddock
John Maddock
贡献者
Glen Fernandes
Glen Fernandes
贡献者
Oliver Kowalke
Oliver Kowalke
贡献者
Hartmut Kaiser
Hartmut Kaiser
贡献者
Eric Niebler
Eric Niebler
贡献者
Antony Polukhin
Antony Polukhin
贡献者
Tim Blechmann
Tim Blechmann
贡献者
Nathan Ridge
Nathan Ridge
贡献者
Robert Ramey
Robert Ramey
贡献者
Ralf W. Grosse-Kunstleve
贡献者
Andrii Sydorchuk
Andrii Sydorchuk
贡献者
Christopher Kohlhoff
Christopher Kohlhoff
贡献者
Jeremiah Willcock
Jeremiah Willcock
贡献者
Barend Gehrels
Barend Gehrels
贡献者
Gennadiy Rozental
Gennadiy Rozental
贡献者
Frank Mori Hess
Frank Mori Hess
贡献者
Artyom Beilis
Artyom Beilis
贡献者
Matias Capeletto
Matias Capeletto
贡献者
Vladimir Prus
Vladimir Prus
贡献者