Boost
发布
arrow_drop_down
上一个版本 (1.65.1)
平台 文件 SHA256 哈希
Unix boost_1_65_1.tar.bz2 9807a....3be81
boost_1_65_1.tar.gz a13de....b6b60
Windows boost_1_65_1.7z df7be....de606
boost_1_65_1.zip d1775....cc3c2
Windows (二进制) boost_1_65_1-bin-msvc-all-32-64.7z 30e3d....918de
boost_1_65_1-msvc-10.0-32.exe 8ce69....13859
boost_1_65_1-msvc-10.0-64.exe 9cf55....f127c
boost_1_65_1-msvc-11.0-32.exe a6dfc....1a157
boost_1_65_1-msvc-11.0-64.exe 05d27....b78e5
boost_1_65_1-msvc-12.0-32.exe 4d4d1....4b533
boost_1_65_1-msvc-12.0-64.exe 903d2....b916c
boost_1_65_1-msvc-14.0-32.exe 56717....445e6
boost_1_65_1-msvc-14.0-64.exe 00a84....b62f6
boost_1_65_1-msvc-14.1-32.exe 1edf8....1c006
boost_1_65_1-msvc-14.1-64.exe cb001....fda82
boost_1_65_1-msvc-8.0-32.exe a63eb....37ddd
boost_1_65_1-msvc-8.0-64.exe ec1f7....08871
boost_1_65_1-msvc-9.0-32.exe 5bc78....3634e
boost_1_65_1-msvc-9.0-64.exe 13c86....b7a88

版本 1.65.1

2017 年 9 月 7 日 17:31 GMT

文档

第三方下载

1.65.1 中的修复

  • Config:
    • CUDA 的版本宏更改。
    • 更新最后一个已知的 MSVC 版本。
    • MSVC 14.11 支持结构化绑定。
  • Context:
    • 从 `resume_with` 执行的函数返回一个 continuation。
  • Fiber:
    • 从 `resume_with` 执行的函数返回一个 continuation。
  • 智能指针:
    • 修复 Visual C++ 版本检查。
    • 修复使用 clang 作为主机编译器的 NVCC 的编译。
  • Stacktrace:
    • 更新构建测试文件,以处理 MinGW 问题。
    • 更改预处理器文件扩展名,以与安装系统配合使用。
    • 支持 FreeBSD 和其他未定义 `_GNU_SOURCE` 但具有 `_Unwind_Backtrace` 函数的操作系统。
  • Thread:
    • 修复 Windows 上 `boost::condition_variable` 的错误 (#130)。

测试的编译器

Boost 的主要测试编译器是:

  • Linux
    • Clang: 3.0, 4.0.1, 5.0.0
    • Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.0
    • Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 5.0.0
    • Clang, C++17: 5.0.0
    • Clang, C++1z:4.0.0
    • GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0
    • GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0
    • GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0
    • GCC, C++17: 7.1.0
    • GCC, C++1z: 6.3.0
    • Intel: 17.0
  • OS X
    • Clang: 8.1.0
    • Clang, C++11: 8.1.0
    • Clang, C++14: 8.1.0
    • Clang, C++1z: 8.1.0
  • Windows
    • GCC:3.4.5、4.1.2、4.2.4、4.3.3、4.4.0、4.5.4
    • GCC, C++11: 4.6.4, 4.7.3, 4.8.1
    • GCC, C++14: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0, 7.1.0
    • Visual C++:7.1、8.0、9.0、10.0、11.0、12.0、14.0、14.1
  • Android
    • Clang: 3.6, 3.7, 3.8
    • GCC: 4.9, 5.4
    • GCC, C++14: 6.2
  • FreeBSD
    • Clang: 3.8.0
    • Clang, C++11: 3.8.0
    • Clang, C++14: 3.8.0
    • Clang, C++1z: 3.8.0
  • QNX
    • QCC, C++11: 4.4.2
  • SunOS
    • Oracle Solaris Studio: 12.5_next, 12.5
    • Oracle Solaris Studio, C++11: , 12.5_next, 12.5

致谢

Beman Dawes、Daniel James、Vladimir Prus 和 Marshall Clow 管理了本次发布。

1.65.0 中的新库

  • PolyCollection: 快速的具有多态对象的容器,作者 Joaquín M López Muñoz。
  • Stacktrace: 收集、存储、复制和打印回溯,作者 Antony Polukhin。
    • 注意:该库在 MinGW 下存在问题,并可能在该编译器下产生空的回溯。

1.65.0 中已移除的库

  • TR1

1.65.0 中已更新的库

  • Asio:
    • 已更改为要求g++版本 >= 4.7 使用标准原子操作,以修复使用时出现的链接器错误。g++ 4.6 (#13121).
    • 启用 `constexpr` 和变长模板与最新 MSVC 版本一起使用。
    • 修复了 Linux epoll 后端中的竞争条件,当套接字或描述符关闭而另一个线程被 epoll 阻塞时,可能会发生此情况。
    • 消除了对已弃用的 `auto_ptr` 的使用。
    • 修复了在响应式 `async_accept` 实现中 `asio_handler_is_continuation` 结果的错误放置。
    • 在一些现代 POSIX 平台上,更改为使用 `poll.h` 而不是 `sys/poll.h` (#12419)。
    • 修复了 MSVC Intellisense 检测。
    • 禁用 Android/clang/x86 目标上的 `__thread` 关键字扩展。
  • Context:
    • 改进
      • `call/cc` 支持 ucontext-API (swapcontext)
      • `call/cc` 支持 Windows-Fiber-API
      • `call/cc` 支持按需增长(分段/分裂)堆栈
    • 错误修复
      • #12719:使用 mingw-w64 工具链构建时,context 测试用例和示例发生段错误
      • #52:使用 g++-4.9 构建 callcc 测试失败
    • 重要
  • Config:
    • 添加了 `BOOST_NO_CXX11_POINTER_TRAITS`、`BOOST_NO_CXX17_FOLD_EXPRESSIONS`、`BOOST_NO_CXX17_INLINE_VARIABLES`、`BOOST_NO_CXX17_STRUCTURED_BINDINGS` 缺陷检测。
    • GCC 7 及以上版本的 `BOOST_FALLTHROUGH` 支持。(Glen Fernandes)
  • Core:
    • 为 C++03 及更高版本实现了 `pointer_traits`,实现了 P0653r0(Glen Fernandes)。此实现现在被 Align、Circular Buffer、Fiber、Geometry 等库使用。
    • 为 Lightweight Test 添加了 `BOOST_TEST_GT` 和 `BOOST_TEST_GE`。
  • Coroutine2:
    • 支持 ucontext-API (swapcontext)
    • 支持 Windows-Fiber-API
    • #13064:协程和 coroutine2 之间行为不同
  • DLL:
    • 修复了非 Windows 平台上的 PE 解析。
  • Fiber:
    • 改进
      • 支持硬件事务内存(Intel TSX)
      • 支持 NUMA
      • 支持 ucontext-API (swapcontext)
      • 支持 Windows-Fiber-API
      • 按需增长堆栈
    • 错误修复
      • #121:使用 GCC 4.8 和 C++11 构建静态库失败
      • #123:schedule_from_remote 中断言失败
      • #125:测试套件中出现偶发性崩溃
      • #126:compare_exchange_strong? 中 std::memory_order 值不正确
    • 重要
  • Fusion:
    • MSVC 14.1 支持变长容器,例如 `fusion::vector`、`fusion::deque`、`fusion::map`、`fusion::set` 和 `fusion::tuple`。(#12986
  • 几何:
    • 改进
      • 添加了接受面积策略的 correct() 重载
      • 添加了接受侧策略的 is_convex() 重载
      • 添加了 MultiPoint/AnyGeometry 缺失的关系操作(covered_by, crosses, equals 等)
    • 已解决的问题
      • 12410:correct() 中缺乏对地理坐标系的支持
      • 13035:线段在极点附近的非笛卡尔交集策略结果错误。
      • 13057:由于 disjoint() 对盒子进行计算时的数值问题,导致线串的 intersects() 结果错误。
    • 错误修复
      • 修复了当内部环接触另一个内部环时,is_valid 可能对多边形返回 false 的问题
      • 修复了当多边形位于内部环中,并且所有环都相互接触时,is_valid 可能对多边形返回 false 的问题
      • 修复了 union 可能产生无效结果的问题(对于某些情况,这需要定义 BOOST_GEOMETRY_INCLUDE_SELF_TURNS)
      • 修复了 intersection(同上),但有些情况仍然无效
      • 修复了 difference(同上),但有些情况仍然无效
      • 修复了面积策略从交集策略传播到各种算法内部的问题
      • 修复了 relate 中未初始化变量和 overlay 中对临时变量的引用
      • 修复了地理 Segment/Box 的 disjoint 中的错误
      • 修复了各种算法中非笛卡尔几何体的处理
  • 哈希:
    • 支持 `char16_t`、`char32_t`、`u16string`、`u32string`。
  • Log:
    • 一般性更改
      • 提高了与 Solaris 的兼容性。
    • 有关更多详细信息,请参阅 更改日志
  • Phoenix:
    • 修正了一些文档。(PR#50
    • `phoenix::erase` 在 C++11 模式下与关联容器一起使用时返回迭代器。(#7423
    • `std::set` 和 `std::multiset` 应与预定义的惰性函数一起使用。(PR#52
    • 在 C++17 中禁用 `phoenix::random_shuffle`。(PR#53
    • 不要前向声明,而是包含。(#11875
  • Predef:
    • 将 Intel C/C++ 版本 9999 的检测修复为 12.1.0。
    • 添加 BOOST_PREDEF_WORKAROUNDBOOST_PREDEF_TESTED_AT 宏,用于缺陷的规避和检测。
    • 添加 ARM64 MSVC SIMD 检测。(来自 Minmin Gong)
    • 添加 iOS 模拟器与设备之间的检测,作为平台选择。(来自 Ruslan Baratov)
    • 修复 MinGW 不正确的头文件保护。(来自 Ruslan Baratov)
  • Program Options:
    • 支持将值存储到 `boost::optional` 中,感谢 Ed Catmur (#7495, PR#18
    • 隐式选项的解析现在可以使用下一个 token 的值。自 1.59 版本以来,除非隐式选项的值在与选项相同的 token 中指定,否则将使用隐式值。这被证明是不方便的,现在我们再次检查下一个 token,如果它不是一个选项,则使用它作为值。(#25
  • Python:
    • `eval()`、`exec()` 和 `exec_statement()` 现在允许 `char const *` 参数,除了 `boost::python::str`。
    • `boost::python::numeric` API 已被移除,因为它被 `boost::python::numpy` 取代。
    • 修复了使用 MSVC 和 Python3 时的某些构建问题。
  • 智能指针:
    • 新的类模板 `atomic_shared_ptr`,它提供 `shared_ptr` 的线程安全原子指针操作。(Peter Dimov)
    • 新的类模板 `local_shared_ptr`,其中引用计数使用非原子操作更新。(Peter Dimov)
    • 为数组的 `allocate_shared` 和 `make_shared` 进行了更多优化。(Glen Fernandes)
    • 文档已完全重写为 Asciidoc 格式。
  • Test:
    • Boost.test v3.6,更多详细信息请参阅更改日志部分。
    • 新功能
      • C++17 兼容性(在 VS2017 上测试),感谢 Daniela Engert
      • `BOOST_TEST` 中 C 数组的直接比较
      • 更好的全局 fixtures 机制,并将职责分离到 `BOOST_TEST_GLOBAL_FIXTURE`(用于全局 fixtures)和 `BOOST_TEST_GLOBAL_CONFIGURATION`(用于全局初始化(编译时配置))。
      • 改进了对 fixtures(`setup` / `teardown` 成员函数)的支持,能够更好地进行 teardown 时间检查。
    • 破坏性更改
      • 日志记录器的一些 API 更改
      • 弃用 `BOOST_GLOBAL_FIXTURE`,改用 `BOOST_TEST_GLOBAL_FIXTURE` 和 `BOOST_TEST_GLOBAL_CONFIGURATION`(见上文)。
    • 错误修复
  • Thread:
  • TypeIndex:
    • 包含 ``(如果需要),感谢 Ed Catmur (#13009)。
    • 在 GCC 类编译器上尽可能使用本地 `hash_code()` (#13027)。
    • 修复 GCC 7 及更高版本的 `ctti_type_index`,感谢 Benjamin Buch (PR16)。
  • Typeof:
  • Unordered:
    • 对 `unordered_set` 和 `unordered_multiset`,以及 `unordered_map` 和 `unordered_multimap` 使用相同的数据结构。这对于 C++17 是必需的,以便节点可以在兼容的容器之间合并和提取。
    • 为已长期弃用的函数添加了已弃用属性。
    • 在 C++11 编译器上改进了 `allocator_traits` 的 `construct` 和 `destroy` 的使用,并在适当的情况下使用 piecewise pair construction。
    • 在较新的 Oracle 编译器上减少了变通方法。
    • 避免解引用未初始化内存的指针 (PR #5)。
  • Utility:
    • 改进了 `boost::next` / `boost::prior` 与 SFINAE 不兼容的迭代器的兼容性。(#10847#13002)。
  • Variant:
    • Albert Sverdlov 添加了 `boost::get` 的 r-value 重载 (#13018)。
    • 添加了 Adam Badura 的缺失包含文件 `` (#13037)。
    • `boost::make_variant_over` 已修复,现在可以与视图和其他 Forward Sequences 一起使用(感谢 Mikhail Maksimov 的修复) (#8554#10041PR#35)。