Boost
发布
arrow_drop_down
上一版本 (1.65.0)
2017年8月19日
依赖项
本次发布新增了 15个依赖项(分布在11个库中),移除了 2个依赖项(分布在2个库中)。
平台 文件 SHA256 哈希
Unix boost_1_65_0.tar.bz2 ea267....9902c
boost_1_65_0.tar.gz 8a142....f20aa
Windows boost_1_65_0.7z 4873d....448f5
boost_1_65_0.zip f3f5c....48592
Windows (二进制) boost_1_65_0-bin-msvc-all-32-64.7z 8807e....5cb36
boost_1_65_0-msvc-10.0-32.exe 8496c....19bfe
boost_1_65_0-msvc-10.0-64.exe 84b7b....aea09
boost_1_65_0-msvc-11.0-32.exe 1a135....33b25
boost_1_65_0-msvc-11.0-64.exe 16052....26076
boost_1_65_0-msvc-12.0-32.exe 4ade8....75ad7
boost_1_65_0-msvc-12.0-64.exe 3c4d1....048a5
boost_1_65_0-msvc-14.0-32.exe 7713b....d1117
boost_1_65_0-msvc-14.0-64.exe ab0a5....52c61
boost_1_65_0-msvc-14.1-32.exe 63632....b4a52
boost_1_65_0-msvc-14.1-64.exe 2b2ff....8eb17
boost_1_65_0-msvc-8.0-32.exe 04054....b2c6f
boost_1_65_0-msvc-8.0-64.exe d4cb1....aaa6f
boost_1_65_0-msvc-9.0-32.exe fd451....261c2
boost_1_65_0-msvc-9.0-64.exe 42183....a6ca2

版本 1.65.0

2017年8月21日 20:50 GMT

文档

第三方下载

已知问题

这些是库作者提交的补丁,由于发现过晚而未能在此版本中修复。请注意,它们未经过正常的测试流程。

针对以下问题合并补丁: boost_1_65_0.patch。从 boost 仓库的根目录使用 patch -p1 < boost_1_65_0.patch 命令应用。或者,您可以在下面单独应用补丁。

新库

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

移除的库

  • TR1

更新的库

  • 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_GTBOOST_TEST_GE
  • Coroutine2:
    • 支持 ucontext-API (swapcontext)
    • 支持 Windows-Fiber-API
    • #13064:coroutine 和 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::setfusion::tuple。(#12986
  • 几何:
    • 改进
      • 添加了接受面积策略的 correct() 重载
      • 添加了接受侧策略的 is_convex() 重载
      • 添加了 MultiPoint/AnyGeometry 缺失的关系操作(covered_by, crosses, equals 等)
    • 已解决的问题
      • 12410:correct() 中缺乏对地理坐标系的支持
      • 13035:非笛卡尔相交策略在接近极点处段错误。
      • 13057:由于 disjoint() 对盒子(boxes)的数值问题,intersects() 对线串(linestrings)的结果不正确。
    • 错误修复
      • 修复了当内部环接触另一个内部环时,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::setstd::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() 现在除了 boost::python::str 外,还允许 char const * 参数。
    • boost::python::numeric API 已被移除,因为它正被 boost::python::numpy 所取代。
    • 修复了使用 Python3 和 MSVC 时的某些编译问题。
  • 智能指针:
    • 新的类模板 atomic_shared_ptr,它在 shared_ptr 上提供线程安全的原子指针操作。(Peter Dimov)
    • 新的类模板 local_shared_ptr,其中引用计数使用非原子操作更新。(Peter Dimov)
    • allocate_sharedmake_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_FIXTUREBOOST_TEST_GLOBAL_CONFIGURATION(见上文)。
    • 错误修复
  • Thread:
  • TypeIndex:
    • 包含 <boost/functional/hash.hpp>(如果需要),感谢 Ed Catmur #13009
    • 在 GCC 类编译器上尽可能使用本地 hash_code() #13027
    • 修复了 GCC 7 及以上版本的 ctti_type_index,感谢 Benjamin Buch PR16
  • Typeof:
  • Unordered:
    • unordered_setunordered_multiset,以及 unordered_mapunordered_multimap 使用相同的数据结构。这是 C++17 所需的,以便节点可以在兼容的容器之间合并和提取。
    • 为长期弃用的函数添加了已弃用属性。
    • 改进了 C++11 编译器上 allocator_traits constructdestroy 的使用,在适当的情况下使用分段对构造(piecewise pair construction)。
    • 在新版 Oracle 编译器上减少了兼容性方面的变通方法。
    • 避免了对未初始化内存的指针进行解引用(PR #5)。
  • Utility:
    • 改进了 boost::next/boost::prior 与 SFINAE 不友好迭代器的兼容性。#10847, #13002
  • Variant:
    • Albert Sverdlov 添加了 boost::get 的右值重载 #13018
    • Adam Badura 添加了缺失的 <boost/variant/polymorphic_get.hpp> 头文件 #13037
    • boost::make_variant_over 已修复,现在可以与视图和其他 Forward Sequences 一起使用(感谢 Mikhail Maksimov 的修复) #8554, #10041, PR#35

测试的编译器

Boost 的主要测试编译器是:

  • Linux
    • Clang:3.0, 3.8.1
    • Clang, C++11:3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1
    • Clang, C++14:3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1
    • 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, 7.1.0
    • GCC, C++14:5.4.0, 5.4.1, 6.3.0, 7.1.0
    • GCC, C++17:7.1.0
    • GCC, C++1z:6.3.0
    • Intel: 16.0, 17.0
    • Intel, C++11: 16.0, 17.0
    • Intel, C++14:16.0
  • OS X
    • Clang:8.1.0
    • Clang, C++11:8.1.0
    • Clang, C++14: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
    • 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.7.3
  • SunOS
    • Oracle Solaris Studio:12.5_next, 12.5
    • Oracle Solaris Studio, C++11:12.5_next, 12.5

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

  • Linux
    • Clang:3.0, 3.8.1
    • Clang, C++11:3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1
    • Clang, C++14:3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1
    • 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, 7.1.0
    • GCC, C++14:5.4.1, 6.2.0, 6.3.0, 7.1.0, 8.0.0
    • GCC, C++17:7.1.0
    • GCC, C++1z:6.3.0
    • Intel:17.0
    • Intel, C++11: 16.0, 17.0
    • Intel, C++14:16.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
    • 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
  • SunOS
    • Oracle Solaris Studio:12.5_next, 12.5
    • Oracle Solaris Studio, C++11:12.5_next, 12.5

致谢

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

贡献者

John Maddock
John Maddock
贡献者
Peter Dimov
Peter Dimov
贡献者
Jeremy W. Murphy
Jeremy W. Murphy
贡献者
Oliver Kowalke
Oliver Kowalke
贡献者
Barend Gehrels
Barend Gehrels
贡献者
Daniel James
Daniel James
贡献者
NAThompson
NAThompson
贡献者
Glen Fernandes
Glen Fernandes
贡献者
Adam Wulkiewicz
Adam Wulkiewicz
贡献者
Andrey Semashev
Andrey Semashev
贡献者
Marshall Clow
Marshall Clow
贡献者
Ion Gaztañaga
Ion Gaztañaga
贡献者
Jakub Szuppe
Jakub Szuppe
贡献者
Edward Diener
Edward Diener
贡献者
Vicente J. Botet Escriba
Vicente J. Botet Escriba
贡献者
Joel de Guzman
Joel de Guzman
贡献者
Rene Rivera
Rene Rivera
贡献者
Raffi Enficiaud
Raffi Enficiaud
贡献者
Vladimir Batov
Vladimir Batov
贡献者
Antony Polukhin
Antony Polukhin
贡献者
Emil Dotchevski
Emil Dotchevski
贡献者
Kohei Takahashi
Kohei Takahashi
贡献者
Vissarion Fisikopoulos
Vissarion Fisikopoulos
贡献者
Daniela Engert
Daniela Engert
贡献者
Kyle Lutz
Kyle Lutz
贡献者
Mario Mulansky
Mario Mulansky
贡献者
mxc-commons
mxc-commons
贡献者
Nikita Kniazev
Nikita Kniazev
贡献者
Christopher Kohlhoff
Christopher Kohlhoff
贡献者
Robert Ramey
Robert Ramey
贡献者
Stefan Seefeld
Stefan Seefeld
贡献者
Vladimir Prus
Vladimir Prus
贡献者
Benjamin Roland Buch
Benjamin Roland Buch
贡献者
Nick
Nick
贡献者
Alexander Zaitsev
Alexander Zaitsev
贡献者
Alexander
Alexander
贡献者
Paul Groke
Paul Groke
贡献者
Peder Holt
Peder Holt
贡献者
Beman Dawes
Beman Dawes
贡献者
Hartmut Kaiser
Hartmut Kaiser
贡献者
Brian Minard
Brian Minard
贡献者
Mike Maximoff
Mike Maximoff
贡献者
Albert Sverdlov
Albert Sverdlov
贡献者
Frank Mori Hess
Frank Mori Hess
贡献者
Michael Krasnyk
Michael Krasnyk
贡献者
Eric Niebler
Eric Niebler
贡献者
Mateusz Łoskot
Mateusz Łoskot
贡献者
Romain Geissler
Romain Geissler
贡献者
Reimar Döffinger
Reimar Döffinger
贡献者
Ed Catmur
Ed Catmur
贡献者
Michel Morin
Michel Morin
贡献者
Martin Langer
Martin Langer
贡献者
Karsten Ahnert
Karsten Ahnert
贡献者
Jürgen Hunold
Jürgen Hunold
贡献者
Minmin Gong
Minmin Gong
贡献者
Jeff Trull
Jeff Trull
贡献者
Alain Miniussi
Alain Miniussi
贡献者
sehe
sehe
贡献者
Michael A. Jackson
Michael A. Jackson
贡献者
Dmitry Trifonov
Dmitry Trifonov
贡献者
Marcel Raad
Marcel Raad
贡献者
Stephen Kelly
Stephen Kelly
贡献者
Mikhail Strelnikov
Mikhail Strelnikov
贡献者
Raphael Isemann
Raphael Isemann
贡献者
Felipe Magno de Almeida
Felipe Magno de Almeida
贡献者
glacierx
glacierx
贡献者
Nick Vrvilo
Nick Vrvilo
贡献者
Torkel Bjørnson-Langen
Torkel Bjørnson-Langen
贡献者
Thomas Kent
Thomas Kent
贡献者
John Kirkham
John Kirkham
贡献者
Huan Zhang
Huan Zhang
贡献者
Benjamin Buch
Benjamin Buch
贡献者
Kirit Sælensminde
Kirit Sælensminde
贡献者
Joaquin M. López Muñoz
Joaquin M. López Muñoz
贡献者
Troy D. Straszheim
Troy D. Straszheim
贡献者
Thomas Heller
Thomas Heller
贡献者
Wei-Ming Yang
Wei-Ming Yang
贡献者
Tim Keitt
Tim Keitt
贡献者
Daniel Krügler
Daniel Krügler
贡献者
Shreyans Doshi
Shreyans Doshi
贡献者
Frédéric Bron
Frédéric Bron
贡献者
Takeshi Abe
Takeshi Abe
贡献者
Lauri Nurmi
Lauri Nurmi
贡献者
Jorge Lodos
Jorge Lodos
贡献者
Václav Slavík
Václav Slavík
贡献者
Rodger Combs
贡献者
Ken Barker
Ken Barker
贡献者
Gaurav
Gaurav
贡献者
Vinnie Falco
Vinnie Falco
贡献者
Adam Badura
Adam Badura
贡献者
Akira Takahashi
Akira Takahashi
贡献者
koosha94
koosha94
贡献者
Artyom Beilis
Artyom Beilis
贡献者
Alexander Nasonov
Alexander Nasonov
贡献者
akumta
akumta
贡献者
David Olsen
David Olsen
贡献者
slymz
slymz
贡献者
Marek Kurdej
Marek Kurdej
贡献者
Jonathan Wakely
Jonathan Wakely
贡献者
OGAWA KenIchi
OGAWA KenIchi
贡献者
Larry Joe Evans
贡献者
Arash
Arash
贡献者
Saliya Hamparawa
Saliya Hamparawa
贡献者
Jurko Gospodnetić
Jurko Gospodnetić
贡献者
Amir Shavit
Amir Shavit
贡献者
Ronan Keryell
Ronan Keryell
贡献者
Batchyx
Batchyx
贡献者
mike96
mike96
贡献者
Ruslan Baratov
Ruslan Baratov
贡献者
Tobias Schwinger
Tobias Schwinger
贡献者
Gary Furnish
Gary Furnish
贡献者
Vincent Hsu
Vincent Hsu
贡献者
Gregor Jasny
Gregor Jasny
贡献者
Ashish Sadanandan
Ashish Sadanandan
贡献者
Ravi0li
Ravi0li
贡献者
Louis Dionne
Louis Dionne
贡献者
Mat Berchtold
Mat Berchtold
贡献者
Bill Somerville
贡献者
Denis Davydov
Denis Davydov
贡献者
Deokhwan Kim
Deokhwan Kim
贡献者
Florian Behrens
Florian Behrens
贡献者
mog422
mog422
贡献者
Paul A. Bristow
Paul A. Bristow
贡献者
memem359
memem359
贡献者
dPavelDev
dPavelDev
贡献者
Mehdi Amini
Mehdi Amini
贡献者
Isaac Dupree
Isaac Dupree
贡献者
Ed Schouten
Ed Schouten
贡献者
James E. King III
James E. King III
贡献者
John Zwinck
John Zwinck
贡献者
Agustin Berge
Agustin Berge
贡献者
Bernhard M. Wiedemann
Bernhard M. Wiedemann
贡献者
Tobias Klauser
Tobias Klauser
贡献者
Mikhail Gusarov
Mikhail Gusarov
贡献者
K. Noel Belcourt
K. Noel Belcourt
贡献者