版本 1.66.0
版本 1.66.0
2017年12月18日 13:58 GMT
平台 | 文件 | SHA256 哈希值 |
---|---|---|
unix | boost_1_66_0.tar.bz2 | 5721818253e6a0989583192f96782c4a98eb6204965316df9f5ad75819225ca9 |
boost_1_66_0.tar.gz | bd0df411efd9a585e5a2212275f8762079fed8842264954675a4fddc46cfcf60 | |
windows | boost_1_66_0.7z | 596389389c005814ecb2a6b64c31dccd2c3e6fbc5a802b4dfada999ae5844628 |
boost_1_66_0.zip | e1c55ebb00886c1a96528e4024be98a38b815115f62ecfe878fcf587ba715aad |
第三方下载
关于新的 Visual Studio 版本的说明
Visual Studio 15.5 发布时间太晚,我们无法使用它测试此版本。
新的库
-
Beast: 仅使用 C++11 和 Boost.Asio 的可移植 HTTP、WebSocket 和网络操作,来自 Vinnie Falco。
-
CallableTraits: Boost.FunctionTypes 的精神继承者,Boost.CallableTraits 是一个仅头文件的 C++11 库,用于编译时检查和操作所有“可调用”类型。来自 Barrett Adair 的 C++17 功能的额外支持。
-
Mp11: 来自 Peter Dimov 的 C++11 元编程库。
更新的库
-
Asio:
-
删除了以前弃用的函数。
-
增加了对自定义处理程序跟踪的支持。
-
将与反应器相关(即描述符就绪)事件添加到处理程序跟踪。
-
添加了特殊的“并发提示”值,可用于禁用每个
io_context
基础上的锁定。 -
为第一个
ssl::stream<>
构造函数参数启用了完美转发。 -
增加了释放底层本机套接字所有权的能力。(在使用 I/O 完成端口后端时,需要 Windows 8.1 或更高版本。)
-
Atomic:
-
为整数类型实现了一组实验性的扩展原子操作
-
fetch_negate
,fetch_complement
- 原子地将值替换为取反或二进制补码值,并返回原始值 -
opaque_<op>
- 等效于fetch_<op>
,只是它不返回原始值 -
<op>_and_test
- 原子地应用<op>
,如果结果为零,则返回true
。注意: 这些操作的结果将在 Boost 1.67 中更改为相反。使用这些函数的代码将需要更新。 -
bit_test_and_set
、bit_test_and_reset
、bit_test_and_complement
- 原子地设置、重置或补充指定的位,并返回该位的原始值
-
-
根据 C++17 (P0558R1),不再提供指向非对象类型的指针的算术运算。
-
同样根据 C++17 公开了
atomic<T>::value_type
和atomic<T>::difference_type
成员 typedef(如果适用)给用户的代码。 -
提高了与 gcc 7 的兼容性。特别是,在 x86-64 上使用 128 位操作不再需要与 libatomic(编译器提供的库)链接。
-
-
Fiber:
-
与 CUDA 流同步
-
与 ROCm/HIP 流同步
-
-
Geometry:
-
改进
-
为地理 PointLike/AnyGeometry 添加距离。
-
-
Bugfixes
-
修复了在非常复杂的情况下可能不正确的 union/intersection/difference 结果
-
修复了 union/intersection/difference/buffer 的有效性
-
修复了非笛卡尔坐标系的集合和关系运算。
-
-
-
Iterator:
-
next()
/prior()
函数现在支持用户未指定诸如iterator_category
、difference_type
等嵌套类型,而是专门化std::iterator_traits
来定义这些类型的迭代器。编译器必须支持与 C++17 兼容的std::iterator_traits
才能使其正常工作。
-
-
Math:
-
新功能
-
添加高斯和高斯-克朗罗德正交例程。
-
添加双指数(tanh-sinh、exp-sinh 和 sinh-sinh)正交例程。
-
添加切比雪夫多项式评估、根、积分、微分和插值例程。
-
-
-
Multi-index Containers:
-
c.modify(c.begin(),[](auto&){throw 0;});
在以前的 Boost 版本中保持容器c
不变,而现在c.begin()
被删除。感谢 Jon Kalb 提出这个问题。 -
维护修复。
-
-
Optional:
-
在较新的编译器上,对于标量
T
,optional
现在是可平凡复制的。这使用不同的存储(只是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 Universal Platform 的检测。(来自 James E. King, III)
-
添加了对 CloudABI 与 cloudlibc 的检测。(来自 James E. King, III)
-
各种其他错误修复。
-
-
Regex:
-
Bug fixes
-
针对去模糊测试发现的众多安全问题进行了小的修复。
-
-
-
Stacktrace:
-
现在可以在 MinGW-w64 上开箱即用。
-
如果正确安装了
libbacktrace
,则现在可以在 MinGW(没有-w64
)上运行。有关更多信息,请参阅文档中的“MinGW 特定说明”部分。
-
-
Thread:
-
错误修复
-
#12323 windows - boost/thread/win32/mfc_thread_init.hpp 的 _pRawDllMainOrig 签名错误
-
#12730 windows - 静态线程库与 MSVC 2017 RC 不兼容
-
#12976 Boost 线程执行器文档错误
-
#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 在测试 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 使用 BOOST_THREAD_ATTRIBUTE_MAY_ALIAS 时出现 Clang 构建错误
-
-
新的实验性功能
-
#116 [提案] 添加用于延迟 set_value/exception 的 API
-
-
-
Utility:
-
boost/next_prior.hpp
已移动到 Boost.Iterator。用户的代码无需更改。
-
-
Uuid:
测试编译器
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 管理了此版本。