版本 1.65.0
版本 1.65.0
2017 年 8 月 21 日 20:50 格林尼治标准时间
平台 | 文件 | SHA256 哈希值 |
---|---|---|
unix | boost_1_65_0.tar.bz2 | ea26712742e2fb079c2a566a31f3266973b76e38222b9f88b387e3c8b2f9902c |
boost_1_65_0.tar.gz | 8a142d33ab4b4ed0de3abea3280ae3b2ce91c48c09478518c73e5dd2ba8f20aa | |
windows | boost_1_65_0.7z | 4873d8f3506fd8d76e2eadcf0ace83b258010fc268a4d974361af7abad5448f5 |
boost_1_65_0.zip | f3f5c37be45eb6516c95cd147d8aa4abb9b52121fc3eccc1fc65c4af0cf48592 |
第三方下载
已知问题
这些是库作者提供的补丁,发现得太晚,无法在发布版本中修复。请谨慎使用,因为它们没有经过正常的测试流程。
用于修复以下问题的组合补丁:boost_1_65_0.patch。 使用 `patch -p1 < boost_1_65_0.patch
` (在 boost 代码库的根目录下)应用补丁。或者您可以单独应用以下补丁。
-
Context 和 Fiber 没有在应该返回延续时返回延续
新增库
-
PolyCollection: 来自 Joaquín M López Muñoz 的快速多态对象容器。
-
Stacktrace: 来自 Antony Polukhin 的收集、存储、复制和打印回溯。
-
注意:该库存在MinGW 问题,并可能使用该编译器生成空的回溯。
-
移除的库
-
TR1
更新的库
-
Asio:
-
更改为需要g++版本 >= 4.7 以使用标准原子操作,以修复使用时出现的链接器错误g++ 4.6 (#13121).
-
启用使用最新的 MSVC 版本的
constexpr
和可变参数模板。 -
修复了 Linux epoll 后端中的竞争条件,当另一个线程在 epoll 上阻塞时,该条件可能会在套接字或描述符关闭时发生。
-
消除了对已弃用的
auto_ptr
的使用。 -
修复了
asio_handler_is_continuation
的错误使用,导致反应式async_accept
实现出现问题。 -
修复了 MSVC 智能感知检测。
-
禁用了对 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 测试
-
-
重要
-
必需的错误修复420554fe9ac01482990e8ae314f4f7ba81010c9a 未包含在 1.65 中
-
-
-
配置:
-
添加了
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)
-
-
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 值不正确?
-
-
重要
-
必需的错误修复63f1041f0e484e64dec437a0fa780ea2463abda2 未包含在 1.65 中
-
-
-
Geometry:
-
改进
-
添加采用面积策略的 correct() 重载
-
添加采用侧边策略的 is_convex() 重载
-
为 MultiPoint/AnyGeometry 添加缺失的关系运算符 (covered_by、crosses、equals 等)
-
-
错误修复
-
修复 is_valid,它可能对内部环相互接触的多边形返回 false
-
修复 is_valid,它可能对多边形位于内部环中的多边形返回 false,所有多边形都相互接触
-
修复联合操作,它可能产生无效的结果(对于某些情况,这需要定义 BOOST_GEOMETRY_INCLUDE_SELF_TURNS)
-
修复交集操作(同上),但某些情况仍无效
-
修复差集操作(同上),但某些情况仍无效
-
修复将面积策略传播到从交集策略开始的各种算法内部
-
修复 relate 中的未初始化变量以及 overlay 中对临时变量的引用
-
修复地理 Segment/Box 的不相交处理
-
修复各种算法中非笛卡尔几何的处理
-
-
-
Hash:
-
支持
char16_t
、char32_t
、u16string
、u32string
。
-
-
Predef:
-
将 Intel C/C++ 版本 9999 检测修复为 12.1.0。
-
添加了
BOOST_PREDEF_WORKAROUND
和BOOST_PREDEF_TESTED_AT
宏,用于缺陷规避和检测。 -
添加 ARM64 MSVC SIMD 检测。(来自 Minmin Gong)
-
添加 iOS 模拟器与设备作为平台选择的检测。(来自 Ruslan Baratov)
-
修复 MinGW 不正确的头文件保护。(来自 Ruslan Baratov)
-
-
Program Options:
-
隐式选项的解析现在可以使用下一个标记的值。从 1.59 开始,除非在与选项本身相同的标记中指定隐式选项的值,否则将使用隐式值。这被证明是不方便的,现在我们再次检查下一个标记,如果它本身不是选项,则将其用作值。(#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_shared
和make_shared
进行了更多优化。(Glen Fernandes) -
文档已完全重写为 Asciidoc 格式。
-
-
测试:
-
Boost.test v3.6,更多详情请参见变更日志部分。
-
新功能
-
C++17 兼容性(在 VS2017 上测试),感谢Daniela Engert
-
在
BOOST_TEST
中直接比较 C 数组 -
改进的全局 fixture 机制,以及使用
BOOST_TEST_GLOBAL_FIXTURE
进行全局 fixture 和BOOST_TEST_GLOBAL_CONFIGURATION
进行全局初始化(编译时配置)的职责分离。 -
改进的 fixture 支持(
setup
/teardown
成员函数),这使得更好的拆卸时间检查成为可能。
-
-
重大更改
-
记录器的部分 API 更改
-
弃用
BOOST_GLOBAL_FIXTURE
,转而使用BOOST_TEST_GLOBAL_FIXTURE
和BOOST_TEST_GLOBAL_CONFIGURATION
(见上文)
-
-
-
线程:
-
Windows 上的重要回归
-
#130 windows:Windows 上 boost::condition_variable 的错误,请合并这两个补丁
-
-
错误修复
-
#6787 如果系统时间回滚,boost::thread::sleep() 会挂起
-
#12519 boost::thread::try_join_for 超时后不返回
-
#12874 future<> 扩展构造函数必须在 BOOST_THREAD_PROVIDES_FUTURE_UNWRAP 下
-
#12888 在 mingw/gcc 4.4 上链接 boost thread 不起作用
-
#12958 sync_bounded_queue::wait_pull_front(lve) 可能抛出异常
-
#13077 链接静态 64 位 libboost_thread 失败,DLL 初始化失败
-
#13155 日志在具有 pthreads 的系统上无法构建
-
#121 on_tls_prepare 在 VS2017 下损坏
-
-
已测试的编译器
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 负责此版本的管理。