Boost
发布
arrow_drop_down
上一版本 (1.66.0)
2017年12月13日
依赖项
此版本新增了 6 个依赖 (在 6 个库中)并移除了 4 个依赖 (在 3 个库中)。
平台 文件 SHA256 哈希
Unix boost_1_66_0.tar.bz2 57218....25ca9
boost_1_66_0.tar.gz bd0df....fcf60
Windows boost_1_66_0.7z 59638....44628
boost_1_66_0.zip e1c55....15aad
Windows (二进制) boost_1_66_0-bin-msvc-all-32-64.7z f4b32....45867
boost_1_66_0-msvc-10.0-32.exe b36ff....1871d
boost_1_66_0-msvc-10.0-64.exe 89f07....84697
boost_1_66_0-msvc-11.0-32.exe eca55....e797f
boost_1_66_0-msvc-11.0-64.exe c401f....35a8c
boost_1_66_0-msvc-12.0-32.exe d382d....dc381
boost_1_66_0-msvc-12.0-64.exe e45ac....7a412
boost_1_66_0-msvc-14.0-32.exe 79461....15526
boost_1_66_0-msvc-14.0-64.exe 9c9a5....41c1d
boost_1_66_0-msvc-14.1-32.exe 0ce0c....d3b22
boost_1_66_0-msvc-14.1-64.exe 4ae62....ce637
boost_1_66_0-msvc-8.0-32.exe c2ce3....0552c
boost_1_66_0-msvc-8.0-64.exe 73f77....87f9a
boost_1_66_0-msvc-9.0-32.exe cf81d....5a5d3
boost_1_66_0-msvc-9.0-64.exe 6e12d....7db18

版本 1.66.0

2017年12月18日 13:58 GMT

文档

第三方下载

关于新的 Visual Studio 版本说明

Visual Studio 15.5 发布时间太晚,我们无法在此版本中对其进行测试。

新库

  • Beast:
    • 仅使用 C++11 和 Boost.Asio 进行的便携式 HTTP、WebSocket 和网络操作,来自 Vinnie Falco。
  • CallableTraits:
    • 作为 Boost.FunctionTypes 的精神继承者,Boost. 是一个仅头文件的 C++11 库,用于在编译时检查和操作所有“可调用”类型。额外支持 C++17 功能,来自 Barrett Adair。
  • Mp11:
    • 一个 C++11 元编程库,来自 Peter Dimov。

更新的库

  • Asio:
    • 实现了接口更改以反映 Networking TS (N4656)。
      • 请参阅 列表 查看新接口,并在适用时查看已被取代的相应旧接口。
      • 服务模板参数以及相应的类默认情况下是禁用的。例如,我们现在只有 basic_socket<Protocol> 而不是 basic_socket<Protocol, SocketService>。可以通过定义 BOOST_ASIO_ENABLE_OLD_SERVICES 宏来启用旧接口。
    • 移除了先前已弃用的函数。
    • 增加了对定制处理程序跟踪的支持。
    • 在处理程序跟踪中添加了与 reactor 相关的(即描述符就绪)事件。
    • 添加了特殊的“并发提示”值,可用于按 io_context 禁用锁定。
    • 为第一个 ssl::stream<> 构造函数参数启用了完美转发。
    • 增加了释放底层原生套接字所有权的能力。(在使用 I/O 完成端口后端时,需要 Windows 8.1 或更高版本。)
  • Atomic:
    • 实现了一组实验性的、针对整数类型的扩展原子操作
      • fetch_negatefetch_complement - 原子地将值替换为其负值或按位取反的值,并返回原始值
      • opaque_<op> - 等同于 fetch_<op>,但它不返回原始值
      • <op>_and_test - 原子地应用 <op>,如果结果为零则返回 true注意:这些操作的结果在 Boost 1.67 中将变为相反。使用这些函数的代码需要进行更新。
      • bit_test_and_setbit_test_and_resetbit_test_and_complement - 原子地设置、重置或翻转指定的位,并返回该位的原始值
    • 遵循 C++17 (P0558R1),不再提供指向非对象类型的指针的算术运算。
    • 同样遵循 C++17,将 atomic<T>::value_typeatomic<T>::difference_type 成员类型(在适用情况下)暴露给用户代码。
    • 改进了与 gcc 7 的兼容性。特别是,在 x86-64 上使用 128 位操作不再需要链接 libatomic(编译器提供的库)。
  • DateTime:
    • 该库已转换为使用 Boost.WinAPI 作为 Windows SDK 的抽象层。
    • 修复了一个整数溢出问题,该问题可能导致在添加或减去多年份后得到不正确的结果(请参阅 此处)。
  • Fiber:
    • 与 CUDA 流同步
    • 与 ROCm/HIP 流同步
  • Format:
    • 改进
      • 接受新的转换说明符
        • a:设置标志 fixed | scientific(即 hexfloat
        • b:设置标志 boolalpha
        • A:与 a 相同,并加上标志 uppercase
        • F:与 f 相同,并加上标志 uppercase
      • 42 接受 ISO C99 的新参数类型 jz(像其他所有类型一样被解析和忽略)。
      • 44 接受 Microsoft 的新参数类型 II32I64w(像其他所有类型一样被解析和忽略)。
      • 33 添加了一个名为 format_matrix 的开发工具,该工具尽可能多地测试格式字符串的组合,并将它们记录到文件中
        • 有助于防止 Boost 版本之间的回归
        • 允许与 snprintf 进行比较
    • 错误修复
      • 36 安全地允许将 volatile 参数与 operator% 一起使用
      • 4636 提供了显式钳制以允许 MSVC /RTCc 成功
      • 7477 修复与 MSVC /Za 的兼容性
      • 10324 解决了 const-correct cast 问题
      • 11632 修复了 alt_sstream.hpp 中的 -fsanitize=undefined 问题
  • Fusion:
    • PR#149 在 Dinkum clib for VxWorks 中,isspace(c) 不是宏,感谢 Brian Kuhl(@kuhlenough)。
    • PR#150 移除循环预处理器包含,感谢 Gregor Jasny(@gjasny)。
    • PR#151 更改 fusion::tuple 的基类。
    • PR#153 修复了 std::array 的编译错误。
    • PR#154 修复了 c++03 中嵌套和复制的错误。
  • 几何:
    • 改进
      • 为地理 PointLike/AnyGeometry 添加距离。
    • 错误修复
      • 在 union/intersection/difference 的结果中进行修复,这些结果在非常复杂的情况下可能不正确
      • 在 union/intersection/difference/buffer 的有效性方面进行修复
      • 修复了非笛卡尔坐标系下的集合和关系运算。
  • Iterator:
    • next()/prior() 函数现在支持不指定嵌套类型(如 iterator_categorydifference_type 等)的用户迭代器,而是专门化 std::iterator_traits 来定义这些类型。编译器必须支持兼容 C++17 的 std::iterator_traits 才能使其正常工作。
  • Log:
    • 错误修复
      • 修复了 file_collector::scan_for_files 中的一个 bug,该 bug 可能导致用户应用程序重新启动后在目标目录中生成名称不正确的日志文件。
    • 有关更多详细信息,请参阅 更改日志
  • 数学:
    • 新功能
      • 添加了高斯和高斯-克朗罗德求积例程。
      • 添加了双指数(tanh-sinh、exp-sinh 和 sinh-sinh)求积例程。
      • 添加了切比雪夫多项式求值、求根、积分、微分和插值例程。
  • 多索引容器:
    • 使 modifymodify_key 更加健壮,以便在修饰符抛出异常或回滚函数未能正确恢复元素时,已修改的元素会被删除(在 ticket #12542 中有完整讨论)。这在技术上是向后不兼容的;例如,以下代码
      c.modify(c.begin(),[](auto&){throw 0;});
      
      在以前的 Boost 版本中保持容器 c 不变,而现在 c.begin() 被删除了。感谢 Jon Kalb 提出这个问题。
    • 维护修复。
  • Optional:
    • 在较新的编译器上,对于标量 T 来说,optional 现在是 trivially-copyable 的。这使用了不同的存储(仅 T 而不是 aligned_storage)。我们要求编译器支持默认化的函数。
    • 更改了 operator== 的实现,以消除 GCC 的 -Wmaybe-uninitialized 假阳性警告。
  • PolyCollection:
    • Boost.PolyCollection 已向后移植到 GCC 4.8 至 4.9 和 Clang 3.3 至 3.6。与 GCC 4.8 一起发布的 libstdc++-v3 版本(Clang 也可以使用)存在缺陷,导致在使用 Boost.PolyCollection 时存在以下限制:
      • 有状态分配器不支持。
      • 分配器扩展的移动构造函数会退化为分配器扩展的复制构造函数。
      • 如果在元素复制过程中抛出异常,则复制构造函数会崩溃。
    • 维护修复。
  • Predef:
    • 改进了 Windows 通用平台检测。(来自 James E. King, III)
    • 添加了对 CloudABI 与 cloudlibc 的检测。(来自 James E. King, III)
    • 其他各种 bug 修复。
  • Regex:
    • 错误修复
      • 对通过反模糊化发现的无数小安全问题进行了修复。
  • Stacktrace:
    • 现在可以在 MinGW-w64 上开箱即用。
    • 现在可以在 MinGW(不带 -w64)上运行,前提是已正确安装 libbacktrace。有关更多信息,请参阅文档中的“MinGW 特定说明”部分。
  • Thread:
    • Bug 修复
      • #12323 Windows - boost/thread/win32/mfc_thread_init.hpp 的 _pRawDllMainOrig 签名错误
      • #12730 Windows - 静态线程库与 MSVC 2017 RC 不兼容
      • #12976 Boost Thread Executors 文档错误
      • #12949 在定义 BOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC 时,在没有包含 boost/thread/thread.hpp 的线程上下文中调用 sleep_for 会产生错误行为
      • #13019 BOOST_THREAD_PROVIDES_INTERRUPTIONS 的 ABI 兼容性不完整
      • #13069 Boost 单元测试 "sync_pq_multi_thread_p_lib.exe" 在线程库中挂起
      • #13163 boost::detail::heap_new 没有变参版本
      • #13226 getpagesize() 自 199506L 起已被弃用
      • #132 VS 2017.4 Preview 在 Test 10964 上死锁
      • #133 Windows - Windows 上出现虚假的定时测试失败
      • #134 VS 2017.4 Preview 在 sync_pq_multi_thread_p_lib.exe 中死锁
      • #135 VS 2017.4 Preview 在 test_scheduled_tp_p.exe 中死锁
      • #136 VS 2017.4 Preview 在 test_scheduler_p.exe 中死锁
      • #137 VS 2017.4 Preview 在 executor_ex.exe 中死锁
      • #143 在 msvc-12.0 上失败
      • #145 Clang 编译错误,涉及 BOOST_THREAD_ATTRIBUTE_MAY_ALIAS
    • 新的实验性功能
      • #116 [提案] 添加用于延迟 set_value/exception 的 API
  • Utility:
    • boost/next_prior.hpp 已移至 Boost.Iterator。用户代码无需更改。
  • Uuid:
    • 改进
      • 26 重构了 name_generator 以支持可配置的哈希提供者概念,并根据 RFC-4122 提供了一个可选的 MD5 哈希实现。这将使支持下一个标准哈希算法变得更加容易。
      • 34boost::uuids::ns 中添加了 RFC-4122 命名空间。
    • 错误修复
      • 8630 11482 12253 解决了 string_generator 中的各种不足。
      • 10665 name_generator::operator() 现在是 const 的,与文档一致。
      • Detail 头文件已移至 detail 子目录。用户代码无需更改,但如果使用旧的头文件位置,可能会收到编译警告。
  • Variant:
    • boost::apply_visitor 现在进行可访问对象的完美转发 #6971。非常感谢 Levon Tarakchyan 实现此功能。

测试的编译器

Boost 的主要测试编译器是:

  • Linux
    • Clang: 3.0, 4.0.1, 5.0.1
    • Clang, C++0x:3.0
    • Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1
    • Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1
    • Clang, C++17: 5.0.1
    • GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.2.0
    • GCC, C++0x:4.4.7
    • GCC, C++11: 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.4.0, 7.1.0, 7.2.0
    • GCC, C++14: 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.2.1
    • GCC, C++17: 7.2.0
    • Intel: 18.0
  • OS X
    • Clang: 9.0.0
    • Clang, C++11: 9.0.0
    • Clang, C++14: 9.0.0
    • Clang, C++1z: 9.0.0
  • Windows
    • GCC:3.4.5、4.1.2、4.2.4、4.3.3、4.4.0、4.5.4
    • GCC, C++0x:4.6.4
    • GCC, C++11: 4.7.3
    • 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:4.0.0
    • Clang, C++11:4.0.0
    • Clang, C++14:4.0.0
    • Clang, C++1z:4.0.0
  • QNX
    • QCC, C++0x: 4.4.2
    • QCC, C++11: 4.7.3

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

  • Linux
    • Clang: 3.0, 3.8.1, 4.0.1, 5.0.1
    • Clang, C++0x:3.0
    • Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1
    • Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1
    • Clang, C++17: 5.0.1
    • GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.2.0
    • GCC, C++0x:4.4.7
    • GCC, C++11: 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 7.2.0
    • GCC, C++14: 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.2.1, 8.0.0
    • GCC, C++17: 7.2.0
    • Intel: 18.0
  • OS X
    • Clang: 9.0.0
    • Clang, C++11: 9.0.0
    • Clang, C++14: 9.0.0
    • Clang, C++1z: 9.0.0
  • Windows
    • GCC:3.4.5、4.1.2、4.2.4、4.3.3、4.4.0、4.5.4
    • GCC, C++0x:4.6.4
    • GCC, C++11:4.7.3、4.8.1、4.9.3
    • GCC, C++14: 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:4.0.0
    • Clang, C++11:4.0.0
    • Clang, C++14:4.0.0
    • Clang, C++1z:4.0.0
  • QNX
    • QCC, C++0x: 4.4.2
    • QCC, C++11: 4.7.3

致谢

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

贡献者

John Maddock
John Maddock
贡献者
Andrey Semashev
Andrey Semashev
贡献者
Peter Dimov
Peter Dimov
贡献者
Barend Gehrels
Barend Gehrels
贡献者
Edward Diener
Edward Diener
贡献者
James E. King III
James E. King III
贡献者
Daniel James
Daniel James
贡献者
Klemens Morgenstern
Klemens Morgenstern
贡献者
Adam Wulkiewicz
Adam Wulkiewicz
贡献者
Vicente J. Botet Escriba
Vicente J. Botet Escriba
贡献者
NAThompson
NAThompson
贡献者
Oliver Kowalke
Oliver Kowalke
贡献者
Christopher Kohlhoff
Christopher Kohlhoff
贡献者
Joaquin M. López Muñoz
Joaquin M. López Muñoz
贡献者
Kohei Takahashi
Kohei Takahashi
贡献者
Jakub Szuppe
Jakub Szuppe
贡献者
Michel Morin
Michel Morin
贡献者
Ion Gaztañaga
Ion Gaztañaga
贡献者
Robert Ramey
Robert Ramey
贡献者
Nick
Nick
贡献者
Vissarion Fisikopoulos
Vissarion Fisikopoulos
贡献者
Daniel Frey
Daniel Frey
贡献者
Antony Polukhin
Antony Polukhin
贡献者
Paul A. Bristow
Paul A. Bristow
贡献者
Rene Rivera
Rene Rivera
贡献者
diplay
显示
贡献者
Beman Dawes
Beman Dawes
贡献者
Andrzej Krzemieński
Andrzej Krzemieński
贡献者
Hartmut Kaiser
Hartmut Kaiser
贡献者
Thorsten Jørgen Ottosen
Thorsten Jørgen Ottosen
贡献者
Daniela Engert
Daniela Engert
贡献者
Lakshay Garg
Lakshay Garg
贡献者
Marshall Clow
Marshall Clow
贡献者
Stefan Seefeld
Stefan Seefeld
贡献者
Egor Pugin
Egor Pugin
贡献者
Richard Dale
Richard Dale
贡献者
Joel de Guzman
Joel de Guzman
贡献者
Alexander Karzhenkov
Alexander Karzhenkov
贡献者
Dave Abrahams
Dave Abrahams
贡献者
Marcel Raad
Marcel Raad
贡献者
Kyle Lutz
Kyle Lutz
贡献者
Abel Sinkovics
Abel Sinkovics
贡献者
Ronald Garcia
Ronald Garcia
贡献者
Frank Mori Hess
Frank Mori Hess
贡献者
rxg
rxg
贡献者
Glen Fernandes
Glen Fernandes
贡献者
Mateusz Łoskot
Mateusz Łoskot
贡献者
SSE4
SSE4
贡献者
Michael Johns
贡献者
Gevorg Voskanyan
Gevorg Voskanyan
贡献者
David Olsen
David Olsen
贡献者
Caleb Dechant
Caleb Dechant
贡献者
Daniel Arndt
Daniel Arndt
贡献者
Thomas Schaub
贡献者
Shinobu Kinjo
Shinobu Kinjo
贡献者
Douglas Gregor
Douglas Gregor
贡献者
Brian Kuhl
Brian Kuhl
贡献者
Jeff Trull
Jeff Trull
贡献者
Julien Schueller
Julien Schueller
贡献者
Janusz Rupar
Janusz Rupar
贡献者
Romain Geissler
Romain Geissler
贡献者
Ed Catmur
Ed Catmur
贡献者
Mark Borgerding
Mark Borgerding
贡献者
Michael Caisse
Michael Caisse
贡献者
Chris Kitching
Chris Kitching
贡献者
Eyas
Eyas
贡献者
Louis Dionne
Louis Dionne
贡献者
Vinnie Falco
Vinnie Falco
贡献者
Jens Maurer
Jens Maurer
贡献者
Gary Furnish
Gary Furnish
贡献者
Yuri Kilochek
贡献者
Arkady Shapkin
Arkady Shapkin
贡献者
Lee Clagett
Lee Clagett
贡献者
Troy D. Straszheim
Troy D. Straszheim
贡献者
Frank Richter
Frank Richter
贡献者
sehe
sehe
贡献者
Takeshi Abe
Takeshi Abe
贡献者
malickf
malickf
贡献者
Gennadiy Rozental
Gennadiy Rozental
贡献者
Nikita Kniazev
Nikita Kniazev
贡献者
Vladimir Prus
Vladimir Prus
贡献者
dmeden
dmeden
贡献者
Bo Gan
Bo Gan
贡献者
Andrii Sydorchuk
Andrii Sydorchuk
贡献者
BenPope
BenPope
贡献者
Alex Henrie
Alex Henrie
贡献者
Alexander 'z33ky' Hirsch
Alexander 'z33ky' Hirsch
贡献者
Jürgen Hunold
Jürgen Hunold
贡献者
Krzysztof Trzciński
Krzysztof Trzciński
贡献者
Roki
Roki
贡献者
Thomas Riccardi
Thomas Riccardi
贡献者
VemundH
VemundH
贡献者
Daniel J. Hofmann
Daniel J. Hofmann
贡献者
Stephen Kelly
Stephen Kelly
贡献者
glywk
glywk
贡献者
Zang MingJie
Zang MingJie
贡献者
Benjamin Worpitz
Benjamin Worpitz
贡献者
Alan Somers
Alan Somers
贡献者
Avi Kivity
Avi Kivity
贡献者
Pavel I. Kryukov
Pavel I. Kryukov
贡献者
Jonathan Wakely
Jonathan Wakely
贡献者
Alessandro Marzialetti
Alessandro Marzialetti
贡献者
Will Sackfield
Will Sackfield
贡献者
Austin Beer
Austin Beer
贡献者
Miutsuru kariya
Miutsuru kariya
贡献者
Friedrich von Never
Friedrich von Never
贡献者
Paul Groke
Paul Groke
贡献者
Sergey Shandar
Sergey Shandar
贡献者
Chris Glover
Chris Glover
贡献者
Sergei Krivonos
Sergei Krivonos
贡献者
Brian Minard
Brian Minard
贡献者
Gregor Jasny
Gregor Jasny
贡献者
nre
nre
贡献者
Dmitry Marakasov
Dmitry Marakasov
贡献者
Chris Needham
Chris Needham
贡献者
Tristan Carel
Tristan Carel
贡献者
Max Kellermann
Max Kellermann
贡献者
Denis Davydov
Denis Davydov
贡献者
Reimar Döffinger
Reimar Döffinger
贡献者
Marvin Schmidt
Marvin Schmidt
贡献者
Brandon Kohn
Brandon Kohn
贡献者
Raffi Enficiaud
Raffi Enficiaud
贡献者
Mathias Gaunard
Mathias Gaunard
贡献者
Aleksey Gurtovoy
贡献者
Minmin Gong
Minmin Gong
贡献者
Agustin Berge
Agustin Berge
贡献者
Joachim Faulhaber
Joachim Faulhaber
贡献者