版本 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
我是一个茶壶
。
-
-
修复
-
read_size_hint_db()
中的窄化转换。 -
使用默认完成令牌时不明确的重载。
-
http::basic_fields
移动赋值运算符中 misplaced 的 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 示例。
-
添加了模糊测试目标。
-
在某些示例中删除了对
std::bind
的多余使用。 -
ssl_stream
不使用flat_stream
。
-
-
文档
-
ssl_stream
和flat_stream
标记为已弃用。 -
net::ssl::stream
在代码片段和示例中是规范的。 -
添加了“
SSL/TLS 关闭程序
”部分。
-
-
致谢
-
tyler92、Ruslan Zakirov、Orgad Shaneh、Alexander Kernozhitsky
-
-
-
Charconv:
-
修复了对 PPC64LE 架构的支持。
-
修复了对提供
<quadmath.h>
头文件但不提供已编译库的平台(如 Alpine Linux)的支持。 -
修复了整数类型
from_chars
中的首字符模式匹配。 -
修复了基数大于 10 的整数的溢出检测。
-
添加了对
std::float16_t
和std::bfloat16_t
的原生支持,而不是使用交换格式。
-
-
Cobalt:
-
添加了对 asio::cancel_after 的支持
-
使
asio::deferred
可 co_await,因为它是 asio 的默认令牌 -
添加了
noop
实用程序 -
添加了对有栈协程/纤程的实验性支持
-
修复了 channel & 协程类型的可移动性
-
-
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)
-
-
格式:
-
不再支持 C++03;需要 C++11 编译器。(这包括 GCC 4.7 或更高版本,以及 MSVC 12.0 (VS 2013) 或更高版本。)
-
-
函数:
-
移除对 Boost.TypeTraits 的依赖。
-
恢复了在 1.85 中意外丢失的 `
argN_type
` 类型定义。
-
-
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 问题 66719)和非关键字子图解析。 -
许多其他改进:断开的链接、拼写错误等。
-
-
LexicalCast(词汇转换):
-
修复了包含一个或多个 `
\0
` 字符的 `std::basic_string_view
` 和 `boost::basic_string_view
` 的转换问题。该问题是在 1.85.0 中引入的。
-
-
leaf:
-
更优化的 verbose_diagnostic_info 实现。
-
错误修复。
-
将 [[nodiscard]] 添加到类 result<>。
-
-
Locale(本地化):
-
在 `
conv::utf_to_utf
` 中添加对自定义分配器的支持 -
默认情况下不构建示例
-
-
Math(数学):
-
修正无穷远处的贝塞尔函数结果,参见 1143。
-
提高非中心 T 的数值稳定性,参见 scipy20693。
-
修正无穷远处 `
float_next
`/`float_prior
` 的行为。 -
防止非中心 beta 中出现虚假下溢,参见 scipy20693。
-
改进 Heuman Lambda 精度。
-
改进偏态正态分布的求根方法,参见 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
` 及其辅助类型定义不受限制。 -
将 `
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++20 `std::chrono::local_time
` 构造,也可以转换为 C++20 `std::chrono::local_time
`。 -
添加了 `
any_connection_params::max_buffer_size
`,它允许设置连接内部缓冲区的限制。 -
添加了 `
is_fatal_error
`,它允许用户现在可以区分致命错误(需要关闭并重新打开连接)和非致命错误代码。 -
添加了 `
formattable_ref
`,这是一种类型擦除的引用类型,可以引用任何满足 `Formattable
` 概念的类型。 -
修复了 MSVC 下的 ODR 冲突,当在不同的翻译单元中将 Boost.MySQL 与其他也使用 `
asio::coroutine
` 的代码一起使用时,该冲突可能会导致发布版本崩溃。
-
-
Odeint(常微分方程积分器):
-
添加了 CMake 选项 `
BOOST_NUMERIC_ODEINT_NO_ADAPTORS
` 以减少依赖关系,参见 82 -
修复了 CMake 对 MPI 的检测。
-
-
Process(进程):
-
将旧的 boost.process 移动到 v1 子文件夹和内联命名空间。弃用 process/*.hpp v1 头文件
-
将 v2 变为编译库。
-
修复了在 alpine linux / musl 上的使用问题
-
-
堆栈跟踪:
-
重大新功能:Windows 上任意异常的堆栈跟踪。
std::stacktrace::from_current_exception()
现在可以在 Windows 平台上运行。非常感谢 huangqinjin 的实现 PR#159。现在在 POSIX 和 Windows 上,from_current_exception()
函数返回当前异常对象的堆栈跟踪,如同在抛出异常时捕获堆栈跟踪一样。 -
修复了包含很少使用的 Windows SDK 头文件的问题,这些头文件可能与其他使用 Windows SDK 的代码冲突。感谢 Marat Abrarov 修复了这个问题 PR#157。
-
修复了断言表达式中的一个拼写错误。感谢 Kilian Henneberger 的错误报告 #164。
-
修复了变量遮蔽警告。感谢 Nigel Stewart 的错误报告 #141。
-
为 AIX 添加了
dladdr
最小支持。非常感谢 Clément Chigot 的实现 PR#114。 -
CMake 的重大改进:多个修复,添加了许多新测试,改进了 CI。非常感谢 Peter Dimov 的所有改进。
-
-
测试:
-
修复配置步骤中的
-Wundef
问题。 -
修复了 MSVC 上无法到达的返回编译错误。
-
-
无序:
-
当头文件
<memory_resource>
可用时,添加了容器pmr
别名。别名boost::unordered::pmr::[container]
指的是具有std::pmr::polymorphic_allocator
分配器类型的boost::unordered::[container]
。 -
开放地址和并发容器现在可以内部计算并提供受哈希函数质量影响的统计指标。此功能由全局宏
BOOST_UNORDERED_ENABLE_STATS
启用。 -
雪崩哈希函数现在必须通过带有嵌入式 `value` 常量设置为 `true` 的 `is_avalanching` typedef 进行标记(通常,将 `is_avalanching` 定义为 `std::true_type`)。`using is_avalanching = void` 已弃用,但为了向后兼容性仍然允许使用。
-
为容器和迭代器添加了 Visual Studio Natvis 框架自定义可视化。这适用于所有使用原始指针的分配器的容器。在此版本中,如果容器和迭代器的分配器使用 fancy 指针,则不支持它们。这可能会在以后的版本中得到解决。
-
-
WinAPI:
-
添加了
BOOST_USE_WINAPI_VERSION
CMake 选项,允许用户指定 Boost 要针对的 Windows 版本。
-
更新的工具
-
BoostBook:
-
DTD 更新:
constructor
、copy-assignment
和destructor
元素现在允许在method-group
元素内使用。 -
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 管理了此版本。