版本 1.69.0
版本 1.69.0
2018 年 12 月 12 日 02:58 GMT
平台 | 文件 | 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 可见性和 local-visibility。
要禁用该功能,您可以使用命令行 ./b2 visibility=global
进行构建。
新库
-
Safe Numerics: Robert Ramey 提供的用于保证 C++14 及更高版本中整数算术正确的库。
更新的库
-
Any:
-
修复了可见性问题。现在,在一个具有隐藏可见性的共享库中构造的
boost::any
变量可以在另一个具有隐藏可见性的共享库中使用和销毁。 -
维护:删除了一些对其他 Boost 库的依赖,修复了文档。
-
-
Asio:
-
修复了使用 libstdc++ 检测
std::future
可用性的问题。 -
修复了
read_until
的 regex 重载中的编译错误。 -
修复了移动已取消的计时器时可能发生的计时器堆损坏问题。
-
修复了使用较新的 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 的地址字符串时可能发生的缓冲区溢出。
-
添加了展示如何编写组合操作的示例。
-
添加了 C++11 版本的超时、计时器、SOCKS4 和 SSL 示例。
-
修复了文档和示例中的小问题。
-
-
Beast:
-
此版本修复了示例中的一些问题,并提供了一个新的实验性套接字,该套接字支持异步操作的内置超时。
-
新的 CppCon 2018 websocket 聊天示例 和 演示视频。
-
有关完整的更改列表,请查看官方的发行说明。
-
-
CircularBuffer:
-
使用空基类优化来存储空且非 final 的分配器 (Glen Fernandes)。
-
-
Concept Check:
-
删除了对 mpl 的依赖。( PR#14)
-
-
Core:
-
实现了
boost::empty_value
,供库作者方便地利用空基类优化来存储可能为空类型的对象 (Glen Fernandes)。此功能现在已在 Boost.Beast、Boost.CircularBuffer、Boost.MultiArray 和更多库中使用。 -
实现了
boost::quick_exit
以提供 C++11 标准库功能std::quick_exit
的功能 (Peter Dimov)。 -
减少了 Lightweight Test 中的静态变量数量,并对 MSVC 编译器在未能调用
boost::report_errors
时采用了更轻量的中止行为 (Glen Fernandes)。
-
-
Flyweight:
-
修复了 GCC 中与 Boost.MPL 占位符表达式处理相关的一些问题。
-
维护修复。
-
-
Integer:
-
boost/pending/integer_log2.hpp
标头已弃用,将在未来的版本中删除。请改用boost/integer/integer_log2.hpp
。
-
-
LexicalCast:
-
修复了符号转换警告 #8991。
-
维护:删除了一些对其他 Boost 库的依赖,修复了构建系统警告。
-
-
Math:
-
添加 LambertW 函数。
-
更新积分例程以支持复值被积函数和轮廓积分。
-
添加了 Barycentric 有理逼近的导数。
-
小幅修复以更好地支持可变精度浮点类型。
-
删除已弃用的 Boost.Endian 的使用,转而使用 Predef。
-
更新了连分数和级数评估代码以支持复数类型。
-
防止导致 toms748_solve 中无限循环的逻辑错误。请参阅 #138。
-
修复了 extreme_value_distribution 的 mean 和 standard_deviation。请参阅 #139。
-
改进了 newton_raphson_iterate 中使用的启发式方法。请参阅 #145。
-
修复了
erf(NaN)
的结果。请参阅 #141 #141。 -
大力减少 GCC 警告。请参阅 #136 #136。
-
重构多项式加法。请参阅 PR#132。
-
修复了 vxWorks 在全局命名空间中具有
real
函数的问题。请参阅 PR#131。 -
改进了
sinc
逼近并添加了更好的测试。 -
修复了 Student's T 假设检验文档中的拼写错误,请参阅 #143。
-
-
Mp11:
-
实现了
mp_starts_with
功能 (Glen Fernandes)。
-
-
MultiArray:
-
改进了 C++11 分配器模型支持,包括:支持 C++11 最小分配器,支持有状态分配器,使用分配器进行值类型的构造和析构,以及使用空基类优化来存储空或无状态分配器 (Glen Fernandes)。
-
-
Multi-index Containers:
-
为符合 C++17 标准的环境引入了一种替代的 简洁键规范语法。
-
-
PolyCollection:
-
添加了 Boost.PolyCollection 特定的算法版本
std::for_each_n
和std::sample
。
-
-
Preprocessor:
-
支持 VC++ 14.1 中新的符合 C++ 标准的预处理器,该预处理器目前通过在 Visual Studio 2017 15.8 及更高版本中使用 /experimental:preprocessor 开关启用。
-
-
Stacktrace:
-
libbacktrace
的使用得到了显著改进。鼓励BOOST_STACKTRACE_USE_BACKTRACE
或boost_stacktrace_backtrace
用户进行更新-
内存消耗下降。
-
堆栈捕获速度提高了一个数量级。
-
backtrace.h
标头的确切位置现在可以通过BOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE
指定,以允许在其他方式无法访问该标头的平台和编译器上使用backtrace.h
标头(例如 Ubuntu Xenial + Clang)#59。
-
-
如果设置了
max_depth
,则优化了堆栈捕获(感谢 Jan Eisenhauer 的 PR!)#67。 -
维护:更新了文档 #62,更新了测试。
-
-
System:
-
Boost.System 现在是仅标头库。仍然构建了一个存根库以实现兼容性,但不再需要链接到它。
-
更多函数已标记为
constexpr
。 -
error_category
的析构函数现在是protected
,不再是virtual
。这是一个潜在的重大更改,但预计其影响有限。 -
error_category
现在具有一个接受 64 位标识符的构造函数,使不同的类别对象可以比较相等。 -
error_category
的构造函数现在是protected
。 -
添加了
message
的非分配、非抛出重载。 -
添加了虚函数
failed
,允许成功与 0 不同步的类别。 -
已删除已弃用的
boost::system::throws
对象。 -
boost::throws()
现在已弃用,不建议使用。 -
现在
system_error
的接受单个error_code
参数的构造函数是explicit
的。 -
system_error::code()
现在按值返回。
-
-
Utility:
-
通过避免对声明为 final 的类型进行空基类优化,为
boost::compressed_pair
添加了对不可继承的空类型的支持 (Glen Fernandes)。
-
-
Variant:
-
修复了可见性问题。现在,
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 上的工作,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 管理了此版本。