Boost
发布
arrow_drop_down
prior release (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。使用 patch -p1 < boost_1_65_0.patch 从 boost 仓库的根目录应用。或者您可以在下面单独应用这些补丁。

新库

  • 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_TRAITSBOOST_NO_CXX17_FOLD_EXPRESSIONSBOOST_NO_CXX17_INLINE_VARIABLESBOOST_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::vectorfusion::dequefusion::mapfusion::setfusion::tuple。(#12986
  • 几何:
    • 改进
      • 添加了接受面积策略的 correct() 重载
      • 添加了接受侧策略的 is_convex() 重载
      • 添加了 MultiPoint/AnyGeometry 缺失的关系操作(covered_by, crosses, equals 等)
    • 已解决的问题
      • 12410:correct() 中缺乏对地理坐标系的支持
      • 13035:靠近极点的线段的非笛卡尔交集策略结果错误。
      • 13057:由于 boxes 的 disjoint() 中的数值问题,线条的 intersects() 结果错误。
    • 错误修复
      • 修复了当内部环接触另一个内部环时,is_valid 可能对多边形返回 false 的问题
      • 修复了当多边形位于内部环中,并且所有环都相互接触时,is_valid 可能对多边形返回 false 的问题
      • 修复了 union 可能产生无效结果的问题(对于某些情况,这需要定义 BOOST_GEOMETRY_INCLUDE_SELF_TURNS)
      • 修复了 intersection(同上),但有些情况仍然无效
      • 修复了 difference(同上),但有些情况仍然无效
      • 修复了面积策略从交集策略传播到各种算法内部的问题
      • 修复了 relate 中未初始化变量和 overlay 中对临时变量的引用
      • 修复了地理 Segment/Box 的 disjoint 中的错误
      • 修复了各种算法中非笛卡尔几何体的处理
  • 哈希:
    • 支持 char16_tchar32_tu16stringu32string
  • 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 (#7495PR#18
    • 隐式选项的解析现在可以使用下一个 token 的值。自 1.59 起,除非隐式选项的值在与选项相同的 token 中指定,否则将使用隐式值。这被证明是不方便的,现在我们再次检查下一个 token 并将其用作值,前提是它本身不是一个选项。(#25
  • Python:
    • eval()exec()exec_statement() 现在允许 char const * 参数,除了 boost::python::str
    • 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 成员函数)的支持,这使得在拆卸时进行更好的检查。
    • 破坏性更改
      • 日志记录器的一些 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 的 r-value 重载 (#13018)。
    • Adam Badura 添加了缺失的 <boost/variant/polymorphic_get.hpp> 头文件 (#13037)。
    • boost::make_variant_over 已修复,现在可与 views 和其他 Forward Sequences 一起使用(感谢 Mikhail Maksimov 的修复) (#8554#10041PR#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
贡献者