版本 1.86.0
版本 1.86.0
2024 年 8 月 14 日 16:07 GMT
平台 | 文件 | SHA256 哈希值 |
---|---|---|
unix | boost_1_86_0.tar.bz2 | 1bed88e40401b2cb7a1f76d4bab499e352fa4d0c5f31c0dbae64e24d34d7513b |
boost_1_86_0.tar.gz | 2575e74ffc3ef1cd0babac2c1ee8bdb5782a0ee672b1912da40e5b4b591ca01f | |
windows | boost_1_86_0.7z | 413ee9d5754d0ac5994a3bf70c3b5606b10f33824fdd56cf04d425f2fc6bb8ce |
boost_1_86_0.zip | cd20a5694e753683e1dc2ee10e2d1bb11704e65893ebcc6ced234ba68e5d8646 |
新库
-
没有新库。
更新的库
-
Asio:
-
更改了
default_completion_token
特征的主模板,以选择deferred
作为默认完成令牌。因此,大多数异步操作的启动函数默认将返回一个延迟的异步操作。 -
添加了
is_completion_condition
特征,并为async_read
、async_read_at
、async_write
和async_write_at
的重载添加了缺失的默认完成令牌。 -
添加了
is_connect_condition
特征,并在完成令牌为默认值时,使用它来消除async_connect
重载的歧义。 -
扩展了完成令牌适配器
as_tuple
、bind_allocator
、bind_cancellation_slot
、bind_executor
、bind_immediate_executor
和redirect_error
,以允许它们用作部分完成令牌适配器。 -
添加了
cancel_after
和cancel_at
完成令牌适配器。 -
更改了所有完成令牌适配器,以确保它们在适配期间正确传播异步操作的 I/O 执行器。
-
将
co_composed
移出了experimental
命名空间。 -
添加了
composed
,它从有状态的实现创建启动函数对象。它类似于co_composed
,但用于常规函数对象而不是 C++20 协程。 -
更改了
detached
完成令牌,使其可以与具有多个完成签名的异步操作一起使用。 -
更改了
async_initiate
,以允许空的完成签名可变参数列表,这表明异步操作永远不会完成。 -
添加了
async_initiate
的重载,这些重载会自动推导完成令牌的类型。 -
添加了
async_immediate
,它实现了一个立即完成的简单异步操作,如果可用,则使用关联的即时执行器。 -
启用了基于 SFINAE 的
associator
特征的部分特化。 -
许多错误修复、编译器/平台兼容性改进和小优化。
-
各种文档和示例的更新。
-
有关更多详细信息,请参阅修订历史。
-
-
Beast:
-
API 变更
-
添加了 HTTP 状态码 418
I'm a teapot
。
-
-
修复
-
read_size_hint_db()
中的窄化转换。 -
使用默认完成令牌时,重载会产生歧义。
-
http::basic_fields
移动赋值运算符中位置错误的 static_assert。 -
WebSocket 部分写入操作中
bytes_transferred
的下溢。 -
websocket::stream::read_size_hint()
不会超过read_message_max
。 -
测试中的各种警告。
-
示例中 SSL 关闭操作的错误处理。
-
注释 zlib 中的 fallthrough case。
-
basic_stream::ops::transfer_op
中过期计时器的处理。 -
test::basic_stream
构造函数重载中的歧义。 -
http::parser
中最终块的部分解析。
-
-
改进
-
server_flex_awaitable
示例中的优雅关闭。 -
简化的 awaitable 示例。
-
添加了 fuzzing 目标。
-
删除了一些示例中多余的
std::bind
用法。 -
ssl_stream
不使用flat_stream
。
-
-
文档
-
ssl_stream
和flat_stream
标记为已弃用。 -
net::ssl::stream
在代码片段和示例中是规范的。 -
添加了
SSL/TLS Shutdown Procedure
部分。
-
-
致谢
-
tyler92, Ruslan Zakirov, Orgad Shaneh, Alexander Kernozhitsky
-
-
-
Charconv:
-
修复了对 PPC64LE 架构的支持。
-
修复了对 Alpine linux 等平台的支持,这些平台提供了
<quadmath.h>
头文件,但没有编译后的库。 -
修复了整数类型
from_chars
中的第一个字符模式匹配。 -
修复了基数大于 10 的整数的溢出检测。
-
添加了对
std::float16_t
和std::bfloat16_t
的原生支持,而不是使用交换格式。
-
-
Cobalt:
-
添加了对 asio::cancel_after 的支持
-
使
asio::deferred
可 co_await,因为它是 asio 的默认令牌 -
添加了
noop
实用程序 -
添加了对堆栈协程/纤程的实验性支持
-
修复了通道和协程类型的可移动性
-
-
Compat:
-
添加了
bind_front.hpp
、bind_back.hpp
、invoke.hpp
、mem_fn.hpp
、integer_sequence.hpp
和type_traits.hpp
。 -
添加了
function_ref.hpp
。
-
-
Container:
-
修复了错误/问题
-
-
CRC:
-
不再支持 C++03;需要 C++11 编译器。(包括 GCC 4.6 或更高版本,以及 MSVC 10.0 (VS 2010) 或更高版本。)
-
移除了对 Array、Config、Integer 和 TypeTraits 的依赖。该库现在是独立的。
-
-
Filesystem:
-
is_empty
操作现在更好地防止并发文件系统修改。 -
在 POSIX 系统上,如果对除常规文件或目录之外的文件调用
is_empty
,则现在指示错误。 -
如果条目引用的文件不存在,
directory_entry::refresh
不再抛出异常。这使得directory_entry::status
和directory_entry::symlink_status
以及基于它们的方法的行为类似于等效的独立操作。文件不存在的事实仍然通过相应的directory_entry::refresh
重载返回的error_code
指示,或者可以通过测试directory_entry::status
或directory_entry::symlink_status
调用返回的文件类型是否为file_type::file_not_found
来查看。 (#314) -
修复了
weakly_canonical
测试路径元素是否存在于当前路径而不是调用中指定的基础路径的相对路径,如果输入路径是相对路径。 -
在 Windows 上,修复了当输入路径以“..”开头时
weakly_canonical
产生不正确结果路径的问题。 (#311)
-
-
Format:
-
不再支持 C++03;需要 C++11 编译器。(包括 GCC 4.7 或更高版本,以及 MSVC 12.0 (VS 2013) 或更高版本。)
-
-
Function:
-
移除了对 Boost.TypeTraits 的依赖。
-
带回了在 1.85 中意外丢失的
argN_type
typedef。
-
-
GIL:
-
已添加
-
致谢
-
Christoph Gringmuth, Christopher Kormanyos, nicolacandussi, Dirk Stolle, Olzhas Zhumabek
-
-
-
Graph:
-
重大更新:C++14 是新的最低标准;这部分是由依赖关系(至少 C++11)决定的,部分是出于选择。如果您需要支持旧标准,请联系维护者。
-
移除对 Boost.Regex 的直接依赖。
-
修复了由于未显式包含通用头文件而导致的几个编译错误。
-
isomorphism
: 修复文档,忽略vertex_max_invariant
参数,转而廉价地计算上限,修复了关联属性映射的错误,将空间效率从最大不变量大小的线性提高到 g1 大小的线性。 -
boykov_kolmogorov_max_flow
: 修复了命名参数重载。 -
adj_list_edge_iterator
: 修复了可能未初始化的警告。 -
hawick_circuits
: 添加了一个参数来选择性地限制搜索深度,从而导致提前返回可能不是最优的答案。 -
disjoint_sets
: 通过删除对集合代表的冗余查找来提高link_sets
的性能。 -
maximum_adjacency_search
: 重构和更多测试。 -
property
: 使用BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS
删除浪费的空间。 -
labeled_graph
: 修复remove_labeled_vertex
,使其也实际删除标签。 -
r_c_shortest_paths
: 修复了单解变体并不总是返回最短路径的错误。 -
read_graphviz
: 修复了堆栈溢出 (oss-fuzz issue 66719) 和非关键字子图解析。 -
许多其他杂项改进:断开的链接、错别字等。
-
-
LexicalCast:
-
修复了包含一个或多个
\0
字符的std::basic_string_view
和boost::basic_string_view
的转换。问题在 1.85.0 中引入。
-
-
leaf:
-
更优化的 verbose_diagnostic_info 实现。
-
错误修复。
-
向类 result<> 添加了 [[nodiscard]]。
-
-
Locale:
-
在
conv::utf_to_utf
中添加了对自定义分配器的支持 -
默认情况下不构建示例
-
-
Math:
-
修正了无穷大处的 Bessel 函数结果,请参阅 1143。
-
提高了非中心 T 数值稳定性,请参阅 scipy20693。
-
修正了无穷大处
float_next
/float_prior
的行为。 -
防止了非中心 beta 中的虚假下溢,请参阅 scipy20693。
-
提高了 Heuman Lambda 精度。
-
改进了 Skew Normal 寻根,请参阅 1120。
-
许多小修复和改进的代码覆盖率。
-
-
MySQL:
-
长期弃用的函数
query
、start_query
、execute_statement
和start_statement_execution
(及其异步等效项)已被删除。 -
实验性 API 的重大更改
-
identifier
类(客户端 SQL 格式化)已被删除。请改用新的格式说明符功能。 -
自定义格式化程序的必需接口已更改,以适应新的格式说明符 API。
-
any_connection::async_connect
现在要求其connect_params
参数保持活动状态,直到操作完成。采用const connect_params*
的重载已被删除。 -
character_set::name
现在是一个const char*
而不是string_view
,因为 MySQL 字符集名称不能包含 NULL 字符。 -
any_connection
内部缓冲区现在限制为 64MB。如果您需要读取或写入大于该值的数据行,请增加any_connection_params::max_buffer_size
。connection
及其辅助 typedef 不受限制。 -
将
any_connection_params::initial_read_buffer_size
重命名为initial_buffer_size
。 -
将
pool_params::initial_read_buffer_size
重命名为initial_buffer_size
。
-
-
新的实验性 API:管道。管道可以通过在单个网络数据包中合并多个请求来提高效率。管道可用于运行文本查询、准备、执行和关闭语句、重置会话状态以及设置连接的字符集。
-
客户端 SQL 格式化现在开箱即用地支持范围。可以使用新的
sequence
函数进一步自定义格式化。使用此功能可以显着简化批处理插入和批处理查找等用例。 -
客户端 SQL 格式化现在支持格式说明符,这些说明符修改值的格式化方式。
{:i}
将字符串格式化为动态 SQL 标识符,{:r}
输出原始未转义的内容 -
静态接口 (
static_results
和static_execution_state
) 现在使用pfr_by_name
和pfr_by_position
支持 Boost.Pfr 类型。添加了underlying_row_t
以支持此类类型。 -
date
和datetime
现在可以从 C++20std::chrono::local_time
构造和转换为 C++20std::chrono::local_time
。 -
添加了
any_connection_params::max_buffer_size
,它允许设置连接内部缓冲区的限制。 -
添加了
is_fatal_error
,它允许用户现在区分致命错误(需要关闭并重新打开连接)和非致命错误代码。 -
添加了
formattable_ref
,一种类型擦除的引用类型,可以引用任何满足Formattable
概念的类型。 -
修复了 MSVC 下的 ODR 违规,当 Boost.MySQL 与其他也使用不同翻译单元中的
asio::coroutine
的代码一起使用时,可能会导致发布版本崩溃。
-
-
Process:
-
将旧的 boost.process 移动到 v1 子文件夹和内联命名空间。 弃用了 process/*.hpp v1 头文件
-
将 v2 转换为编译库。
-
修复了在 alpine linux / musl 上的用法
-
-
Stacktrace:
-
重大新功能:Windows 上来自任意异常的堆栈跟踪。
std::stacktrace::from_current_exception()
现在可以在 Windows 平台上运行。非常感谢 huangqinjin 的实现 PR#159 现在在 POSIX 和 Windows 上,from_current_exception()
函数返回当前异常对象的堆栈跟踪,就像堆栈跟踪是在抛出异常的点捕获的一样。 -
修复了包含很少使用的 Windows SDK 头文件的问题,这些头文件可能会与其他使用 Windows SDK 的代码冲突。感谢 Marat Abrarov 修复了该问题 PR#157。
-
修复了 assert 表达式中的错别字。感谢 Kilian Henneberger 的错误报告 #164。
-
修复了阴影警告。感谢 Nigel Stewart 的错误报告 #141。
-
为 AIX 添加了
dladdr
最小支持。非常感谢 Clément Chigot 的实现 PR#114。 -
CMake 的重大改进:多次修复,添加了许多新测试,改进了 CI。非常感谢 Peter Dimov 的所有改进。
-
-
Test:
-
修复了配置步骤中的
-Wundef
。 -
修复了 MSVC 上无法访问的返回编译错误。
-
-
Unordered:
-
当头文件
<memory_resource>
可用时,添加了容器pmr
别名。别名boost::unordered::pmr::[container]
指的是带有std::pmr::polymorphic_allocator
分配器类型的boost::unordered::[container]
。 -
配备了开放寻址和并发容器,以内部计算和提供受哈希函数质量影响的统计指标。此功能由全局宏
BOOST_UNORDERED_ENABLE_STATS
启用。 -
Avalanching 哈希函数现在必须通过
is_avalanching
typedef 标记,其中嵌入的value
常量设置为true
(通常,将is_avalanching
定义为std::true_type
)。using is_avalanching = void
已弃用,但允许向后兼容。 -
为容器和迭代器添加了 Visual Studio Natvis 框架自定义可视化效果。这适用于所有使用原始指针的分配器的容器。在此版本中,如果容器的分配器使用花哨指针,则不支持容器和迭代器。这可能会在以后的版本中解决。
-
-
WinAPI:
-
添加了
BOOST_USE_WINAPI_VERSION
CMake 选项,允许用户指定 Boost 要面向的 Windows 版本。
-
更新的工具
-
BoostBook:
-
DTD已更新:现在允许在
method-group
元素内使用constructor
、copy-assignment
和destructor
元素。 -
Doxygen 生成的文档中进行了许多修复和改进
-
修复了 Doxygen 生成的枚举值初始化器中重复的等号。
-
禁用了函数参数的字母排序。可以通过将新的
boost.sort.params
XSL 参数设置为 1 来重新启用排序。 -
增加了对自定义类成员分组的支持。请参阅 Doxygen 标签
@name
和@{
/@}
。 -
增加了对 Doxygen 引用类、方法、枚举、变量等的支持(请参阅
@ref
标签)。 -
增加了对
@remark
和@important
标签的支持。 -
增加了对
@parblock
标签的支持,该标签可用于在期望单个段落作为参数的标签下放置多个段落(例如@returns
)。 -
引用实现细节的模板参数默认值现在被隐藏,类似于函数参数默认值。
-
改进了未命名枚举的呈现方式。不再显示类似
@0
的合成名称,如果名称对于引入枚举文档的链接是必要的,则名称将被省略或显示为[unnamed]
。 -
将“另请参阅” (
@sa
) 块更改为内联显示,类似于“返回值”。 -
修复了多个异常规范 (
@throws
) 的呈现。 -
增加了对抛出行为的自由格式描述的支持。如果
@throws
标签后的异常类型为“~”,则从输出中省略异常类型,并且以下描述直接显示在“Throws”部分中。 -
移除了返回类型和模板参数中的冗余空格。
-
-
-
构建:
-
包含 B2 版本 5.2.1 的发布。
-
测试编译器
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 管理了此版本。