版本 1.69.0
版本 1.69.0
2018 年 12 月 12 日 02:58 格林尼治标准时间
平台 | 文件 | SHA256 哈希值 |
---|---|---|
unix | boost_1_69_0.tar.bz2 | 8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406 |
boost_1_69_0.tar.gz | 9a2c2819310839ea373f42d69e733c339b4e9a19deab6bfec448281554aa4dbb | |
windows | boost_1_69_0.7z | af05616f71006f97833e130aad886c96136457511ace4b5496d6566e69cbe0ca |
boost_1_69_0.zip | d074bcbcc0501c4917b965fc890e303ee70d8b01ff5712bae4a6c54f2b6b4e52 |
非 Windows 用户须知
Boost 构建系统现在支持可见性。如果您正在构建共享库,它们默认将使用隐藏可见性。因此,Boost 共享库变得更小,加载速度更快,并且减少了符号冲突的可能性。
查看 Boost.Build 可见性和局部可见性 获取更多信息。
要禁用此功能,您可以使用命令行 ./b2 visibility=global
进行构建。
新增库
-
安全数值: Robert Ramey 提供的 C++14 及更高版本的库,用于保证整数运算的正确性。
更新的库
-
Any:
-
修复了可见性问题。现在,在一个使用隐藏可见性的共享库中构造的
boost::any
变量可以在另一个使用隐藏可见性的共享库中使用和销毁。 -
维护:删除了一些对其他 Boost 库的依赖,修复了文档中的错误。
-
-
Asio:
-
修复了使用 libstdc++ 检测
std::future
可用性时出现的问题。 -
修复了
read_until
的正则表达式重载中的编译错误。 -
修复了移动已取消的定时器时可能发生的定时器堆损坏问题。
-
使用较新的 clang/libc++ 修复了
std::experimental::string_view
和std::string_view
的检测。 -
修复了 MSVC 版本检测中
std::invoke_result
可用性的问题。 -
如果
decltype
可用,则修复缓冲区序列特性以测试新要求。 -
修复了在禁用异常的情况下进行构建时的 MSVC 问题。
-
为 TLS v1.3 添加了 SSL 上下文选项。
-
添加了 TLS v1 支持的编译时测试。
-
修复了用于测试 TLS v1.2 支持的宏。
-
防止在 Windows 上每个线程创建一次全局对象。
-
修复了在默认构造的解析器结果上使用
size()
、max_size()
或empty()
时发生的崩溃。 -
更改为在
basic_resolver_results::begin()
中移动返回值,以避免复制。 -
为 Intel 编译器启用了移动支持。
-
使用 clang-cl 时修复了
std::string_view
检测问题。 -
修复了
io_context::executor_type::dispatch
的处理程序跟踪操作名称。 -
修复了解析具有 64 位范围 ID 的地址字符串时可能发生的缓冲区溢出。
-
添加了显示如何编写组合操作的示例。
-
添加了超时、定时器、SOCKS4 和 SSL 示例的 C++11 版本。
-
修复了文档和示例中的小问题。
-
-
Beast:
-
此版本修复了示例中的一些问题,并提供了一个新的实验性套接字,该套接字支持异步操作上的内置超时。
-
新的 CppCon 2018 websocket 聊天示例 和 演示视频。
-
有关更改的完整列表,请查看官方 发行说明。
-
-
CircularBuffer:
-
使用空基优化来存储为空且不是最终的分配器 (Glen Fernandes)。
-
-
Core:
-
实现了
boost::empty_value
,供库作者方便地利用空基优化来存储可能为空类型的对象 (Glen Fernandes)。此功能现在已用于 Boost.Beast、Boost.CircularBuffer、Boost.MultiArray 等。 -
实现了
boost::quick_exit
以提供 C++11 标准库功能std::quick_exit
功能 (Peter Dimov)。 -
减少了轻量级测试中的静态数量,并在未能调用
boost::report_errors
时对 MSVC 编译器采用更轻的终止行为 (Glen Fernandes)。
-
-
Flyweight:
-
修复了与 GCC 相关的 Boost.MPL 占位符表达式处理问题。
-
维护修复。
-
-
整数:
-
boost/pending/integer_log2.hpp
头文件已弃用,将在未来的版本中移除。请使用boost/integer/integer_log2.hpp
代替。
-
-
LexicalCast:
-
修复了符号转换警告 #8991。
-
维护:删除了一些对其他Boost库的依赖,修复了构建系统警告。
-
-
数学:
-
添加LambertW函数。
-
更新积分例程以支持复值被积函数和轮廓积分。
-
添加了重心有理逼近的导数。
-
进行了一些小的修改,以更好地支持可变精度浮点类型。
-
移除对已弃用的Boost.Endian的使用,改用Predef。
-
更新了连分数和级数计算代码以支持复数类型。
-
防止导致toms748_solve中无限循环的逻辑错误。参见 #138。
-
修复了extreme_value_distribution的均值和标准差。参见 #139。
-
改进了newton_raphson_iterate中使用的启发式算法。参见 #145。
-
修复了
erf(NaN)
的结果。参见 #141 #141。 -
大力减少GCC警告。参见 #136 #136。
-
重构多项式加法。参见 PR#132。
-
针对vxWorks全局命名空间中存在
real
函数的修复。参见 PR#131。 -
改进
sinc
近似值并添加更好的测试。 -
修复了学生t检验文档中的错别字,参见 #143。
-
-
Mp11:
-
实现了
mp_starts_with
功能 (Glen Fernandes)。
-
-
多维数组:
-
改进了C++11分配器模型的支持,包括:支持C++11最小分配器,支持有状态分配器,使用分配器构造和析构值类型,以及使用空基优化来存储空或无状态分配器 (Glen Fernandes)。
-
-
PolyCollection:
-
添加了Boost.PolyCollection特定版本的算法
std::for_each_n
和std::sample
。
-
-
预处理器:
-
支持VC++ 14.1中的新的符合C++标准的预处理器,目前可以通过在Visual Studio 2017 15.8及更高版本中使用/experimental:preprocessor开关启用。
-
-
堆栈跟踪:
-
libbacktrace
的使用得到了显著改进。鼓励BOOST_STACKTRACE_USE_BACKTRACE
或boost_stacktrace_backtrace
用户进行更新-
内存消耗降低。
-
堆栈捕获速度提高了一个数量级。
-
现在可以通过
BOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE
指定backtrace.h
头文件的精确位置,以便在其他情况下无法访问该头文件的平台和编译器上使用backtrace.h
头文件(例如Ubuntu Xenial + Clang) #59。
-
-
如果设置了
max_depth
,则优化堆栈捕获(感谢Jan Eisenhauer提供的PR!) #67。 -
维护:更新文档 #62,更新测试。
-
-
系统:
-
Boost.System现在是仅包含头文件的库。为了兼容性,仍然会构建一个存根库,但是不再需要链接到它。
-
更多函数已被标记为
constexpr
。 -
error_category
的析构函数现在是protected
而不是virtual
。这是一个潜在的破坏性更改,但其影响预计有限。 -
error_category
现在有一个接受64位标识符的构造函数,允许不同的类别对象比较相等。 -
error_category
的构造函数现在是protected
。 -
添加了
message
的非分配、非抛出重载。 -
添加了一个虚函数
failed
,允许成功不与0同义的类别。 -
已移除已弃用的
boost::system::throws
对象。 -
boost::throws()
现已弃用,不建议使用。 -
接受单个
error_code
参数的system_error
构造函数现在是explicit
。 -
system_error::code()
现在按值返回。
-
-
实用程序:
-
通过避免对声明为final的类型的空基优化,为
boost::compressed_pair
添加了对不可继承的空类型的支持 (Glen Fernandes)。
-
-
变体:
-
修复了可见性问题。现在
boost::bad_visit
异常可以跨越具有隐藏可见性的共享库的边界,并可以在具有隐藏可见性的其他共享库中捕获。
-
-
YAP:
-
进行了一些小的更改以支持MSVC++ 14.15版(Visual Studio 2017 15.8版)。
-
文档修复。
-
已停止维护的库
-
Signals (v1) 已移除。其移除已在1.68版本中宣布,其弃用已在1.54版本中宣布。Boost 1.68是提供此库的最后一个版本。鼓励用户改用Signals2。Boost社区感谢Douglas Gregor为Signals所做的工作,它很好地为用户服务,也启发了Signals2。
测试过的编译器
Boost的主要测试编译器是
-
Linux
-
Clang:3.0、4.0.1、6.0.1
-
Clang,C++0x:3.0
-
Clang,C++11:3.0、3.1、3.2、3.3、3.4、4.0.1、6.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.2、6.0.1
-
Clang,C++17:5.0.2、6.0.1
-
GCC:4.4.7、4.5.3、4.6.3、5.4.0、8.0.1
-
GCC,C++0x:4.4.7
-
GCC,C++11:4.7.3、4.8.5、4.9.4、5.4.0、6.4.0、7.1.0、8.0.1
-
GCC,C++14:5.4.0、5.5.0、6.4.0、7.1.0、7.3.0、8.0.1
-
GCC,C++17:7.3.0、8.0.1
-
Intel,C++14:18.0
-
-
OS X
-
Apple Clang:9.0.0、9.1.0、10.0.0
-
Apple Clang,C++11:9.0.0、9.1.0、10.0.0
-
Apple Clang,C++14:9.0.0、9.1.0、10.0.0
-
Apple Clang,C++17:9.1.0、10.0.0
-
Apple Clang,C++1z:9.0.0
-
Apple Clang,C++2a:10.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
-
GCC,C++17:7.1.0、7.2.0、7.3.0
-
Visual C++:7.1、8.0、9.0、10.0、11.0、12.0、14.0、14.1
-
-
FreeBSD
-
Clang:4.0.0
-
Clang,C++11:4.0.0
-
Clang,C++14:4.0.0
-
Clang,C++1z:4.0.0
-
Boost的额外测试编译器包括:
-
Linux
-
Clang:3.0、3.8.1、3.9.1、4.0.1、5.0.2、6.0.1
-
Clang,C++0x:3.0
-
Clang,C++11:3.0、3.1、3.2、3.3、3.4、4.0.1、6.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.2、6.0.1、7.0.0
-
Clang,C++17:5.0.2、6.0.1
-
GCC:4.4.7、4.5.3、4.6.3、4.9.4、5.4.0、5.5.0、8.0.1
-
GCC,C++0x:4.4.7
-
GCC,C++11:4.7.3、4.8.5、4.9.4、5.4.0、6.4.0、7.1.0、8.0.1
-
GCC,C++14:5.4.0、5.5.0、6.3.0、6.4.0、7.1.0、7.3.0、8.0.1、8.1.0
-
GCC,C++17:7.3.0、8.0.1
-
Intel,C++14:18.0
-
-
OS X
-
Apple Clang:9.0.0、9.1.0、10.0.0
-
Apple Clang,C++11:9.0.0、9.1.0、10.0.0
-
Apple Clang,C++14:9.0.0、9.1.0、10.0.0
-
Apple Clang,C++17:9.1.0、10.0.0
-
Apple Clang,C++1z:9.0.0
-
Apple Clang,C++2a:10.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
-
GCC,C++17:7.1.0、7.2.0、7.3.0
-
Visual C++:7.1、8.0、9.0、10.0、11.0、12.0、14.0、14.1
-
-
FreeBSD
-
Clang:4.0.0
-
Clang,C++11:4.0.0
-
Clang,C++14:4.0.0
-
Clang,C++1z:4.0.0
-
鸣谢
Daniel James、Vladimir Prus、Marshall Clow和Michael Caisse负责本次发行。