| 平台 | 文件 | SHA256 哈希 | |
|---|---|---|---|
| Unix | boost_1_90_0.tar.bz2 | 49551aff3b22cbc5c5a9ed3dbc92f0e23ea50a0f7325b0d198b705e8ee3fc305 49551aff3b....e8ee3fc305 49551....fc305 | |
| boost_1_90_0.tar.gz | 5e93d582aff26868d581a52ae78c7d8edf3f3064742c6e77901a1f18a437eea9 5e93d582af....18a437eea9 5e93d....7eea9 | ||
| Windows | boost_1_90_0.7z | 78413237decc94989bffd4c5e213cc4bf49ad32db3ed1efd1f2283bd6fb695b2 78413237de....bd6fb695b2 78413....695b2 | |
| boost_1_90_0-bin-msvc-all-32-64.7z | d92b92569843b42389d00d802f768c15a08d8b45bee61b4d238c7cbf17c81303 d92b925698....bf17c81303 d92b9....81303 | ||
| boost_1_90_0-msvc-14.1-32.exe | cd24f27246bd0a20dd1b7f80b4236aee6f8a23afeb4184c789e256d64586307e cd24f27246....d64586307e cd24f....6307e | ||
| boost_1_90_0-msvc-14.1-64.exe | 6d1036c55d762a15daed4fd42ef35e7873aa3bfce646cb83eca41b7943daeafa 6d1036c55d....7943daeafa 6d103....aeafa | ||
| boost_1_90_0-msvc-14.2-32.exe | 8fe7c306a070c186485fb2c5ca259c6bc24773b3c01d26adaa9e9bf846e6f4e5 8fe7c306a0....f846e6f4e5 8fe7c....6f4e5 | ||
| boost_1_90_0-msvc-14.2-64.exe | b29c60393812970ad69e52e1e0e8b730158ef5f9391879ecd993028ec697276c b29c603938....8ec697276c b29c6....7276c | ||
| boost_1_90_0-msvc-14.3-32.exe | e15280b4a1277ceba474683c90377ea466815d6867dc43d041f099d3dfc31b3e e15280b4a1....d3dfc31b3e e1528....31b3e | ||
| boost_1_90_0-msvc-14.3-64.exe | b4b90982e725484374526948022009368272089ebcec96417cefefbf912cfb4e b4b90982e7....bf912cfb4e b4b90....cfb4e | ||
| boost_1_90_0.zip | bdc79f179d1a4a60c10fe764172946d0eeafad65e576a8703c4d89d49949973c bdc79f179d....d49949973c bdc79....9973c | ||
版本 1.90.0
新库
-
-
使用 C++17 及以上版本,通过 Jean-Louis Leroy 实现的 Open-(multi-)methods。
-
更新的库
-
-
添加了 `execution::inline_exception_handling` 属性,用于描述内联执行时所做的异常处理保证。
-
添加了 `inline_executor`,它总是内联执行提交的函数。
-
将 `associated_executor` 的默认候选执行器从 `system_executor` 更改为 `inline_executor`。
-
添加了 `inline_or_executor<>` 适配器和 `inline_or()` 辅助函数,它将在可能的情况下内联执行,否则委托给另一个执行器。
-
添加了 `dispatch`、`post` 和 `defer` 的重载,这些重载接受一个函数对象以在目标执行器上运行,并将结果传递给完成处理程序。
-
添加了 `redirect_disposition` 完成令牌适配器,作为 `redirect_error` 的通用对应项。
-
使用 `[[deprecated]]` 属性注解了已弃用的项。
-
添加了一个新的配置参数“reactor”/“reset_edge_on_partial_read”,它决定在使用 `epoll` 时部分读取是否消耗边缘。
-
添加了新的配置参数“reactor”/“use_eventfd”和“reactor”/“use_timerfd”,它们分别用于确定 `epoll` 后端是否使用 `eventfd` 和 `timerfd`。
-
添加了 `BOOST_ASIO_DISABLE_TIMERFD` 的缺失预处理器检查。
-
实现了 `std::source_location` 支持的编译时特性检查,以及 `std::experimental::source_location`。
-
停止使用已弃用的 `boost::array::c_array()` 函数。
-
修复了 `asio::awaitable` 移动赋值中的资源泄漏。
-
修复了 `ssl` 流移动赋值中的内存泄漏。
-
修复了 `kqueue` 反应器中的线程消毒器问题。
-
修复了 `io_uring` 后端中的处理程序跟踪参数。
-
修复了 `boost::asio::detail::null_thread` 中的未使用参数警告。
-
将基于宏的协程实现更改为确保 `__COUNTER__` 使用时的确定性 case 标签。
-
修复了同步 SSL 流 `shutdown`,将其 `error::eof` 重新映射为 `async_shutdown` 的方式。
-
将 Windows 上的 `stream_file` 和 `random_access_file` 改为将文件路径视为 UTF-8 编码的字符串。
-
在 `experimental::parallel_group` 和 `experimental::ranged_parallel_group` 中添加了检查,以检测空操作集。
-
移除了 `_FORTIFY_SOURCE` 的解决方法,并为 `ip::basic_resolver_results` 添加了地址长度检查。
-
修复了 `experimental::coro` 以防止 `max` 作为宏。
-
更新了对较新 `libc++` 版本的 `std::aligned_alloc` 的检测。
-
各种文档修复和改进。
-
请参阅 boost_at:/doc/libs/latest//doc/html/boost_asio/history.html[修订历史]获取更多详细信息。
-
-
-
http::parser默认拒绝非标准尾部字段。 -
http::basic_parser为尾部字段使用专用回调。 -
http::field常量已更新。 -
修复了 `flat_buffer` 和 `multi_buffer` 中的分配器移动/复制赋值。
-
修复了 websocket permessage-deflate 在部分消息消耗时出现的错误。
-
http::buffer_body忽略空块。 -
添加了 `http::basic_fields::contains` 成员函数。
-
移除了对 Boost.Preprocessor 和 Boost.StaticAssert 的依赖。
-
-
-
添加了批量模式插入和查找以提高性能。
-
对 `block`、`fast_multiblock32` 和 `fast_multiblock64` 的查找实现进行了无分支处理,从而带来了一些性能提升,尤其是在混合成功/不成功的查询中。
-
-
-
修复了 CMake 中用于交叉编译的 quadmath 检测。
-
修复了一个问题,该问题在于浮点 `to_chars` 中,足够大的缓冲区会出现“不足够大”的错误。
-
-
-
添加了 `to_underlying.hpp`(由 Braden Ganetsky 贡献)。
-
-
-
重新实现了 `deque`。原始实现基于 SGI 的原始数据结构(类似于 libstdc++)。主要变化:
-
sizeof(deque)从 10 个字(word)变为 4 个字。可能是目前最轻量级的实现。 -
sizeof(deque::iterator)从 4 个字变为 2 个字(类似于 libc++ 和 MSVC)。) -
重新实现了几个内部算法,以加速 deque 的分段特性。
-
默认值略有改变,64 位平台现在默认使用 1024 字节块,而不是经典的 SGI 512 字节块。
-
新实现为将来进一步的 deque 式变体和优化提供了便利。
-
-
修复了错误/问题
-
-
-
删除了对 Boost.SmartPtr 的依赖。
-
-
Core:
-
在 `boost/core/lightweight_test.hpp` 中定义的 `BOOST_TEST_THROWS` 和 `BOOST_TEST_NO_THROW` 宏的实现已更改,以避免在某些编译器上使用宏时出现编译器警告,尤其是在 `if`/`else` 块中。作为此更改的副作用,宏后的分号现在是必需的。(PR#205)
-
如果编译器提供了 `std::data` 和 `std::size`,则 `boost::data` 和 `boost::size` 现在是它们的别名。这解决了编译器同时找到 `boost::` 和 `std::` 备选方案时可能出现的歧义,例如由于 ADL。(PR#206)
-
-
DLL:
-
修复了将 `std::error_code` 传递给 `boost::system::error_code&` 的问题。非常感谢 Thomas Klausner 提供的修复。(PR#106)
-
修复了 `size` 变量的遮蔽。
-
-
-
添加了 C++20 迭代器。
-
允许选择底层容器类型。
-
添加了 C++20 或更高版本编译时的 constexpr 支持。
-
提高了 push_back(), pop_back() 和 lowest_bit() 的效率。
-
使从 basic_string 的构造函数显式。
-
移除了几个依赖项。
-
添加了 push_front(), pop_front(), find_first_off(), find_next_off() 以及从 C 风格字符串和 basic_string_view(后者在 C++17 或更高版本中)构造。
-
更改了流插入器,以便在输出期间抛出异常时设置 badbit。
-
使流提取器重新抛出来自底层向量的任何异常。
-
将文档移植到 MrDocs 和 Antora。
-
-
-
修复了 Clang 19 及更高版本中由于支持 P0522R0 而导致的编译错误。
-
-
几何:
-
GIL:
-
JSON:
-
移除了对 Boost.Align 和 Boost.StaticAssert 的依赖。
-
切换到更快的哈希算法。
-
-
-
修复了 B2 构建文件,以避免在只请求静态库时构建各种 Boost 库的动态版本。(PR#266)
-
当请求 ISO8859-1 或 ISO8859-8 编码时,允许使用 Windows 代码页 1252 或 1255,而不是在所选 Windows 代码页不支持该 ISO8859 编码时使用“C”(经典)区域设置。
-
为 Cygwins stdlib 中将某些长 UTF-8 序列转换为 UTF-16 时的一个问题启用了解决方法。
-
-
Log:
-
修复了 `value_ref` 访问中遗漏的优化。
-
修复了 `text_file_backend` 中日志文件轮换可能出现的长而无用的循环。如果日志文件名模式不包含文件计数器且日志文件大小超过 `rotation_size` 限制,则接收器后端将反复尝试打开具有不同计数器值的新日志文件,并最终每次都打开同一个文件。(#252)
-
使 `text_file_backend` 中的文件大小检查更能抵抗整数溢出。
-
-
数学:
-
添加了新的子库:反向模式自动微分。
-
添加了新常量:`log_pi`。
-
为 `logit`、`logistic_sigmoid` 和 `logistic` 分布添加了适当的提升策略支持。
-
对特殊函数进行了大量的修复和边缘情况处理。
-
-
Mp11:
-
更新了 `mp_reverse_fold` 以在固定大小列表上工作
-
-
-
移除了对 Boost.Spirit 的依赖。
-
自动重连现在会在任何传输层错误上触发,而不是仅限于一组有限的白名单。(#38)
-
向 Logger 接口添加了 `at_transport_error` 回调。
-
-
MSM:
-
翻新并更新了文档以使用 Antora。
-
添加了一个新的后端 `backmp11`,提供大大缩短的编译时间、重构的 API 和一些新功能。需要 C++17,更多详情请参见文档。
-
修复了 bug GitHub #87:“boost::any 在 1.86 版本中的 boost::msm 中停止作为 Kleene 事件工作”。
-
-
-
对较新的 `cpp_double_fp_backend` 的测试和覆盖率进行了显著改进。
-
-
-
弃用了对 Clang 4.0 以下版本的支持。这些编译器仍可能工作,但在 CI 中不会被积极测试。
-
添加了测试以确保与 MySQL 9.x 兼容。
-
添加了测试以确保与高达 20 的 Clang 版本和高达 15 的 GCC 版本兼容。
-
-
解析器:
-
修复了使用移动独占可调用对象与闭包时出现的格式错误(PR#284)
-
修复了 `GlobalState` 解析器模板参数中令人讨厌的 `const` 不兼容性(#250)。
-
修复了在某些情况下使用排列解析器时出现的格式错误(#268)。
-
修复了序列解析中的一个错误,该错误可能导致某些属性被后续解析器覆盖(#279)。
-
修复了 opt-parsers 的处理问题,该问题可能导致 `std::optional` 属性在解析器失败时仍然包含一个值(#279 和 #285)。
-
适度的编译时和代码大小优化(#250)。
-
使 `transform` 成为 `constexpr`(PR#275)。
-
迁移与转发警告缓解(#272)。
-
更正 `if_` 指令的属性类型的文档(#278)。
-
更正了文档中的许多拼写错误(PR#271)。
-
-
PFR:
-
添加了一个基于 C++26 解构到 pack 的实现,该实现**修复了库的绝大多数已知限制**并避免了过度的模板实例化。新的实现可以通过新的 `BOOST_PFR_USE_CPP26` 宏显式启用/禁用。非常感谢 Jean-Michaël Celerier 的 PR(PR#194)。
-
对 CMake 的多个修复。非常感谢 Alexander Grund 的 PR!
-
-
-
修复了从 SeedSeq 构建 xoshiro 系列生成器。
-
-
-
关于**取消**的重要更改
-
改进了 `async_exec()` 中的每个操作支持,并添加了对 `asio::cancel_after` 的支持。请求现在可以在任何时候取消,并且取消不会以任何方式干扰其他请求。Pull request PR#310 和 #226。
-
弃用了 `request::config` 中的 `cancel_on_connection_lost` 和 `cancel_if_not_connected` 标志。要限制 `async_exec` 可能花费的时间,请改用 `asio::cancel_after`。`cancel_on_connection_lost` 的默认值已更改为 `false`。Pull request PR#329 和 PR#334。
-
弃用了使用 `operation::resolve`、`connect`、`ssl_handshake`、`reconnection` 和 `health_check` 调用 `cancel`。用户应改用 `cancel(operation::run)`。Pull request PR#321。
-
为 `async_run()` 添加了对每个操作取消的支持。问题 #319。
-
-
添加了对使用 `config::setup` 的**自定义设置请求**的支持。设置这些字段时,用户可以用任何其他任意请求替换库生成的 `HELLO` 请求。问题 #302 和 pull request PR#303。
-
弃用了 `request::config::hello_with_priority`。如果您需要优先执行请求,请改用 `config::setup`。Pull request PR#305。
-
**Valkey** 长期支持:我们保证从本次发布开始兼容 Valkey。问题 #296。
-
添加了 `request::append()` 函数,用于连接请求对象。问题 #341。
-
健康检查器算法经过重新设计,以避免在重负载下出现误报。现在 `PING` 命令仅在连接空闲时发出,而不是定期发出。问题 #104。
-
添加了 `config::read_buffer_append_size`,它允许控制连接的读取缓冲区的扩展。Pull request PR#283。
-
添加了 `usage::bytes_rotated`,它测量从服务器读取和解析数据时的数据复制。Pull request PR#311。
-
错误修复
-
-
-
已移除通过已弃用宏 `BOOST_SP_ENABLE_DEBUG_HOOKS`、`BOOST_SP_USE_STD_ALLOCATOR` 和 `BOOST_SP_USE_QUICK_ALLOCATOR` 启用的功能。
-
头文件 `<boost/smart_ptr/detail/quick_allocator.hpp>` 已被标记为已弃用,将在未来版本中移除。
-
不再支持定义 `BOOST_NO_CXX11_HDR_ATOMIC` 的配置;现在需要符合 C++11 标准的 `<atomic>`。
-
已弃用的宏 `BOOST_AC_USE_SPINLOCK`、`BOOST_AC_USE_PTHREADS`、`BOOST_SP_USE_SPINLOCK` 和 `BOOST_SP_USE_PTHREADS` 不再起作用。
-
不再使用平台特定的 `atomic_count`、`sp_counted_base` 和 `spinlock` 实现,并已移除。
-
不再支持定义 `BOOST_NO_CXX11_HDR_MUTEX` 的配置;现在需要符合 C++11 标准的 `<mutex>`。
-
已从 `boost/smart_ptr/detail/` 中移除了一些未使用的头文件。
-
-
-
修复了缺失的包含。感谢 Orgad Shaneh 提供的修复!
-
修复了 `libbacktrace_impls.hpp` 中的 URL。感谢 Jonathan Wakely。
-
-
-
在 C++26 中,使 `to_static_[w]string()` 与 `std::to_[w]string()` 对齐。
-
在 `to_static_[w]string()` 中移除了对额外缓冲区的用法。
-
添加了 `resize_and_overwrite()`。
-
-
-
修复了 GCC 14 时的格式错误(PR#80)。
-
修复了使用移动独占可调用对象与闭包时出现的格式错误。
-
-
Test:
-
修复了 Windows Clang 上的几个警告。
-
-
-
删除了对 Boost.Core 的依赖。
-
也在 CMake 中运行了所有测试。非常感谢 Alexander Grund 提供的一些修复和帮助。
-
-
URL:
-
Uuid:
-
C++14 及更高版本中的 `string_generator` 现在是 `constexpr`。
-
添加了头文件 `boost/uuid/constants.hpp`。
-
将 `boost/uuid/uuid_generators.hpp` 重命名为 `boost/uuid/generators.hpp`。为兼容性保留了旧名称。
-
-
-
更多函数被标记为 `constexpr`,包括 `~variant`。这在 C++20 之前无关紧要,但现在很重要。
-
测试的编译器
Boost 的主要测试编译器是
-
Linux
-
Clang, C++03: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0, 15.0.0
-
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
-
Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
-
Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
-
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
-
GCC, C++03: 4.6.3, 11, 12
-
GCC, C++11: 4.7.3, 4.8.5, 11, 12
-
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
-
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
-
GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
-
-
OS X
-
Apple Clang, C++03: 11.0.3
-
Apple Clang, C++11: 11.0.3
-
Apple Clang, C++14: 11.0.3
-
Apple Clang, C++17: 11.0.3
-
Apple Clang, C++20: 11.0.3
-
-
Windows
-
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3
-
致谢
Marshall Clow、Glen Fernandes 和 Ion Gaztañaga 管理了此次发布。