版本 1.70.0
版本 1.70.0
2019年4月12日 格林尼治标准时间06:04
平台 | 文件 | SHA256 哈希值 |
---|---|---|
Unix | boost_1_70_0.tar.bz2 | 430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778 |
boost_1_70_0.tar.gz | 882b48708d211a5f48e60b0124cf5863c1534cd544ecd0664bb534a4b5d506e9 | |
Windows | boost_1_70_0.7z | ae2bb1b35d1f238e72e3f819b42336f4bd27c9ed2092aab5d87818ccb0c9161a |
boost_1_70_0.zip | 48f379b2e90dd1084429aae87d6bdbde9670139fa7569ee856c8c86dd366039d |
新库
已更新的库
-
Asio:
-
此版本包含许多新功能、错误修复、性能增强和文档改进。显著的变化包括
-
添加了将自定义 I/O 执行器与 I/O 对象(例如套接字)一起使用的功能。
-
添加了具有 `initiate` 静态成员函数的新 `async_result` 形式。
-
更新了协程 TS 支持并将其提升到 `asio` 命名空间。
-
添加了新的 `DynamicBuffer_v2` 概念,它是可复制构造的。
-
添加了新的 `async_compose` 函数,它简化了用户定义的异步操作的实现。
-
添加了 `make_strand` 辅助函数。
-
放宽了完成条件类型的要求,只要求可移动构造而不是可复制构造。
-
为 `local::basic_endpoint` 添加了一个构造函数,它接受一个 `string_view`。
-
将 noexcept 限定符添加到各种函数。
-
添加了新的 `BOOST_ASIO_DISABLE_VISIBILITY` 配置 `#define`。
-
启用回收用于使用多态执行器类型擦除函数对象的内存。
-
更改接收操作以在数据报导向套接字上发生截断(`error::message_size`)时返回正确的传输字节数。
-
当后端使用 `pthread_cond_timedwait` 时,修复了绝对超时的计算。
-
更改基于范围的异步连接操作以推断 `EndpointSequence` 迭代器类型。
-
修复了 `buffer_sequence_begin` 和 `buffer_sequence_end` 以防止隐式转换。
-
确保在本地操作完成之前将 SSL 握手错误传播到对等方。
-
在 SSL 关闭时抑制了 `eof` 错误,因为它实际上表示成功。
-
添加了 OpenSSL 生成 `SSL_ERROR_SYSCALL` 结果而没有关联错误时的回退错误代码。
-
更改组合异步读写操作以移动缓冲区序列对象。
-
修复了关于 `OSMemoryBarrier` 弃用的 macOS 特定警告。
-
修复了在 MSVC 11.0 中使用组合读写操作时发生的编译错误。
-
改进了 `dispatch`、`post` 和 `defer` 文档。
-
修复了使用 `system_executor` 时可能发生的 Windows 特定内存泄漏。
-
-
有关更多详细信息,请参阅修订历史记录。
-
-
Beast: **重大更新!!!**
-
某些 API 已更改。
-
参考在每个新项目旁边显示一个星号 ★。
-
Beast 需要你的帮助!
-
告诉我们 你或你的公司如何使用 Beast
-
请报告任何错误、功能请求或一般反馈
-
免费加入**C++ Slack 工作区** 并在 #beast 和 #boost 频道与我们聊天
-
别忘了给仓库点赞 ⭐!
-
-
更多教程,像专业人士一样编写代码!
-
网络入门 从头开始教你。
-
更新了异步回显示例
-
更新了**检测 SSL**组合操作教程
-
websocket-chat-multi 多线程聊天服务器,带有 JavaScript 浏览器客户端
-
-
`basic_stream` 和 `tcp_stream` 提供
-
超时:`async_read_some`、`async_write_some` 在到期时完成 `error::timeout`!
-
流量整形策略 `simple` 和 `unlimited`,或用户定义的 _RatePolicy_!
-
使用 P1322R0 将 strand 直接放在套接字上,调用站点不再需要 `bind_executor`!
-
-
基类 `async_base` 和 `stable_async_base` 并为你处理所有组合操作样板。
-
`ssl_stream` 提供了具有平面写入优化的可移动、可分配 SSL 流。
-
所有异步操作都使用 Asio 的 `async_initiate` เพื่อให้สามารถรวมเข้ากับ Coroutines TS ได้อย่างมีประสิทธิภาพ
-
⚡ **_更快的编译_**,定义 `BOOST_BEAST_SEPARATE_COMPILATION` 并在你的一个 .cpp 文件中 `#include
`! -
有关更改的完整列表,请参阅完整的发行说明。
-
-
Coroutine2:
-
#28:不要在 pthread_cancel 上崩溃
-
-
DLL:
-
新宏 BOOST_DLL_USE_STD_FS。将其定义为 `1` 以使 Boost.DLL 使用 C++17 的 `std::filesystem::path`、`std::system_error` 和 `std::error_code`(#21)。请注意,异常类型从 `boost::system::system_error` 更改为 `std::system_error`,因此请确保更新 `catch`es。
-
对动态可加载检测和装饰逻辑进行了重大重写。现在,在加载失败的情况下会报告更精确的错误。添加了 `shared_library::decorate()` 函数,该函数返回库的修饰路径,而无需执行任何与平台相关的查询和检测。更喜欢使用 `shared_library::load` 和 `shared_library` 构造函数以获得更好的结果(非常感谢 Loïc Touraine 的工作 PR#23)。
-
CI 强化、文档更新、拼写错误修复、清理和许多可移植性修复。
-
-
文件系统:
-
修复了 `path` 实现中几个取消引用 `std::string::end()` 的实例。
-
修复了目录迭代器构造函数和接受对 `error_code` 的引用的操作中内存不足情况下的程序终止问题。(#58)
-
修复了由于缺少 `path` 的静态成员定义而可能导致的链接错误。(#12759)
-
修复了 Linux 上目录迭代器递增操作中可能使用未初始化数据的问题。
-
为目录迭代器添加了对可移动性的支持。
-
为 `directory_entry` 添加了文件状态查询重载。这避免了在请求解引用目录迭代器结果的文件状态时,执行相对昂贵的操作系统查询。(PR#55)
-
重新设计了 `current_path` 和 `read_symlink` 的实现,以避免在损坏或被篡改的文件系统上可能出现的内存耗尽。这些函数现在对从操作系统接受的路径大小有一个内部限制,目前为 16 MiB。
-
增加了 `copy_file` 使用的内部缓冲区的大小。
-
-
数学库:
-
新特性
-
添加 Lanczos 平滑导数
-
将 `numerical_differentiation.hpp` 从 `boost/math/tools/` 移动到 `boost/math/differentiation/finite_difference.hpp`。
-
在 `tools/univariate_statistics.hpp` 中添加了均值、方差、偏度、峰度、中位数、基尼系数和中位数绝对偏差。
-
在 `tools/bivariate_statistics.hpp` 中添加了相关系数和协方差。
-
在 `tools/signal_statistics.hpp` 中添加了绝对基尼系数、Hoyer 稀疏性、oracle SNR 和 M[sub 2]M[sub 4] SNR 估计器。
-
在 `tools/norms.hpp` 中添加了总变差、l0、l1、l2 和 sup 范数,以及相应的距离函数。
-
为多项式添加了移动构造函数,支持复系数,添加了 `.prime()` 和 `.integrate()` 方法。
-
在 `tools/roots.hpp` 中添加了 `quadratic_roots`。
-
在 `roots.hpp` 中为牛顿法添加了对复值函数的支持。
-
添加 Catmull-Rom 插值器。
-
-
-
Mp11 库:
-
将 `mp_invoke` 重命名为 `mp_invoke_q`
-
添加了 `mp_similar`
-
添加了 `mp_set_union`、`mp_set_intersection`、`mp_set_difference`
-
添加了 `mp_not_fn`
-
添加了 `mp_transform_first`、`mp_transform_second`、`mp_transform_third`
-
添加了 `mp_filter`
-
添加了 `mp_eval_if_not`、`mp_eval_or`、`mp_valid_q`
-
添加了 `mp_back`、`mp_pop_back`
-
-
高精度库:
-
修复了 traits 类中的各种转换问题,检查与 Boost.Optional 的兼容性。
-
在检查可转换性时,防止在任何旧类型上实例化 `std::numeric_limits`。请参阅 #98。
-
更新可变精度代码以考虑任意精度整数。请参阅 #103。
-
添加对 XML 序列化存档的支持。
-
修复了 `mpf_float` 和 `mpfr_float` 中固定精度 iostream 格式化错误。请参阅 #113。
-
为 MPFR 本身可以更好地处理的特殊函数添加了更多重载。
-
修复了通用 `exp` 实现中可能导致不变量失败的错误。
-
修复了从浮点数到整数的通用转换,以避免未定义的行为。请参阅 #110。
-
-
PolyCollection 库:
-
在 Billy O'Neal 报告错误后(PR#9),改进了对有状态分配器和分配器传播 traits 的处理。
-
修复了内部缓存结构中一个潜在的严重错误。
-
-
Spirit 库:
-
删除了对已弃用的 `boost/detail/iterator.hpp` 头文件的引用。PR#432
-
X3
-
整数解析器现在应该能够处理用户定义的类型。PR#429
-
**注意:**`check_overflow` trait 的默认实现现在依赖于 `std::numeric_limits
::is_bounded` 而不是 `boost::integer_traits ::is_integral`。 -
删除了对纯解析的序列。现在它会触发编译时错误,而不是静默地解析序列并将最后一个值作为结果。PR#439
-
如果您使用它来解决属性转换中的错误——从这个版本开始,它们应该不再需要了。
-
整数値解析器现在遵循 `std::numeric_limits
::digits10` 的值。PR#469 -
修复了 `(Min % Base) == 0` 边界情况的 下溢检查。 PR#469
-
修复了 IgnoreOverflowDigits=true 整数解析器溢出时的输出值。 PR#470
-
容器属性元素被复制,但没有被移动。 PR#472
-
删除了 `transform_attribute` 中对引用的特殊处理。 PR#480
-
-
V2
-
Qi
-
为规则跳过类型问题添加了静态断言。 PR#427
-
`check_overflow` trait 的默认实现现在依赖于 `std::numeric_limits
::is_bounded` 而不是 `boost::integer_traits ::is_integral` PR#429 -
整数解析器现在应该能够处理用户定义的类型。PR#429
-
**注意:**`check_overflow` trait 的默认实现现在依赖于 `std::numeric_limits
::is_bounded` 而不是 `boost::integer_traits ::is_integral`。 -
未记录的 `make_attribute` trait 已合并到 `transform_attribute` trait 中。 PR#471
-
`pre_transform`、`post_transform` 和 `fail_transform` 实用函数已被删除,改为直接使用 transform trait 的 `pre`/`post`/`fail`。 PR#467
-
整数値解析器现在遵循 `std::numeric_limits
::digits10` 的值。PR#469 -
修复了 `(Min % Base) == 0` 边界情况的 下溢检查。 PR#469
-
修复了 IgnoreOverflowDigits=true 整数解析器溢出时的输出值。 PR#470
-
删除了 `transform_attribute` 中对引用的特殊处理。 PR#480
-
-
Lex
-
修复了具有用户指定令牌类型的 lexer 默认构造函数中的 UB。 PR#420
-
-
-
测试库:
-
Boost.test v3.10 更多详细信息,请参阅更改日志。
-
重大更改
-
Boost.Test `minimal.hpp` 现在显示弃用警告,
-
浮点比较的更改可能会导致在此版本之前静默不使用浮点比较逻辑的测试失败,
-
`unit_test_log_formatter` 的内部 API 更改,请参阅详细更改日志,
-
-
新功能
-
浮点比较已扩展到捕获非浮点和算术操作数:像 `BOOST_TEST(3.0001 == 3)` 这样的表达式现在使用 Boost.Test 的浮点支持,
-
自定义数据集不再需要声明 `sample` 类型字段,
-
将模板测试用例从 `std::tuple` 扩展到任何可变参数定义,
-
Windows 对定时测试的支持,
-
测试套件上的定时测试,
-
删除了对 Boost.Timer 的依赖,
-
新的宏
BOOST_TEST_INFO_SCOPE
用于作用域上下文声明。 -
改进了
BOOST_TEST_CONTEXT
的语法。
-
-
-
TypeTraits:
-
添加了 is_bounded_array 和 is_unbounded_array(Glen Fernandes)。
-
添加了 copy_reference 和 copy_cv_ref(Glen Fernandes)。
-
改进了对带 /clr 选项的 msvc 的支持。
-
其他编译器兼容性修复。
-
测试过的编译器
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、7.0.0、8.0.0
-
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、8.0.0
-
Clang,C++17:5.0.2、6.0.1、7.0.0、8.0.0
-
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、7.0.0、8.0.0
-
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、8.0.0
-
Clang,C++17:5.0.2、6.0.1、7.0.0、8.0.0
-
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 管理了此次发布。