版本 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: 可移植的 HTTP、WebSocket 和网络操作,仅使用 C++11 和 Boost.Asio,来自 Vinnie Falco。
-
CallableTraits: Boost.FunctionTypes 的精神继承者,Boost.CallableTraits 是一个仅头文件的 C++11 库,用于在编译时检查和操作所有“可调用”类型。 额外支持 C++17 功能,来自 Barrett Adair。
-
Mp11: 一个 C++11 元编程库,来自 Peter Dimov。
更新的库
-
Asio:
-
移除了先前已弃用的函数。
-
添加了对自定义处理程序跟踪的支持。
-
向处理程序跟踪添加了与 reactor 相关的(即描述符就绪)事件。
-
添加了特殊的“并发提示”值,可用于在每个
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 添加距离计算。
-
-
缺陷修复
-
修复了 union/intersection/difference 的结果,这些结果在非常复杂的情况下可能不正确
-
修复了 union/intersection/difference/buffer 的有效性问题
-
修复了非笛卡尔坐标系中集合和关系运算的问题。
-
-
-
Iterator:
-
next()
/prior()
函数现在支持用户迭代器,这些迭代器不指定嵌套类型,例如iterator_category
,difference_type
等,而是专门化std::iterator_traits
来定义这些类型。 编译器必须支持与 C++17 兼容的std::iterator_traits
才能使其工作。
-
-
Math:
-
新功能
-
添加 Gauss 和 Gauss-Kronrod 正交例程。
-
添加双指数(tanh-sinh、exp-sinh 和 sinh-sinh)正交例程。
-
添加 Chebyshev 多项式求值、根、积分、微分和插值例程。
-
-
-
Optional:
-
在较新的编译器上,对于标量
T
s,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 通用平台检测。(来自 James E. King, III)
-
添加了对带有 cloudlibc 的 CloudABI 的检测。(来自 James E. King, III)
-
各种其他缺陷修复。
-
-
Regex:
-
缺陷修复
-
针对去模糊化发现的安全问题进行了许多小修复。
-
-
-
Stacktrace:
-
现在可以在 MinGW-w64 上开箱即用。
-
如果正确安装了
libbacktrace
,现在可以在 MinGW 上工作(不带-w64
)。 有关更多信息,请参阅文档中的“MinGW specific notes”部分。
-
-
Thread:
-
缺陷修复
-
#12323 windows - boost/thread/win32/mfc_thread_init.hpp 中 _pRawDllMainOrig 的签名错误
-
#12730 windows - 静态线程库与 MSVC 2017 RC 不兼容
-
#12976 Boost 线程执行器文档错误
-
#12949 在线程上下文中不包含 boost/thread/thread.hpp 的情况下使用 sleep_for 会在定义 BOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC 时产生不正确的行为
-
#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 管理了此版本。