版本 1.81.0
版本 1.81.0
2022 年 12 月 14 日 17:44 GMT
平台 | 文件 | SHA256 哈希值 |
---|---|---|
unix | boost_1_81_0.tar.bz2 | 71feeed900fbccca04a3b4f2f84a7c217186f28a940ed8b7ed4725986baf99fa |
boost_1_81_0.tar.gz | 205666dea9f6a7cfed87c7a6dfbeb52a2c1b9de55712c9c1a87735d7181452b6 | |
windows | boost_1_81_0.7z | d7bc4e2a2aee374a8c24832cacfed1265680c1e824d09fab3e00f87508155353 |
boost_1_81_0.zip | 6e689b266b27d4db57f648b1e5c905c8acd6716b46716a12f6fc73fc80af842e |
新库
-
URL: 由 Vinnie Falco 和 Alan de Freitas 开发的仅使用 C++11 的 URL 解析、修改和打印库。功能包括快速编译、强大的不变性和严格的内存友好型合规性。
更新的库
-
Asio:
-
添加了
consign
完成令牌适配器,可用于将附加值附加到完成处理程序。 -
添加了
any_completion_handler<>
,可用于类型擦除完成处理程序。 -
添加了
experimental::co_composed
,以使用 C++20 协程实现轻量级的用户定义异步操作。 -
添加了基于范围的
experimental::make_parallel_group()
重载。 -
添加了
any_completion_executor
,一种与完成处理程序关联的执行器的类型擦除包装器。 -
为 use_future 的执行器添加了缺失的
context
查询。 -
为
execution::any_executor<>
和any_io_executor
添加了 noexcept 构造函数重载。 -
优化了空
execution::any_executor
对象的表示形式,以提高复制和移动操作的性能。 -
为
std::reference_wrapper
添加了associated_cancellation_slot
特化。 -
更改了 I/O 对象以通过常量引用返回其执行器。
-
更改了关联以对所有双参数
get
函数使用推导的返回类型。 -
修复了
spawn
实现,以捕获未处理的异常并在派生的“线程”外部重新抛出它们。 -
修复了
spawn
,以确保完成处理程序通过正确的执行器分派。 -
修复了终端状态
spawn
“线程”对象的清理。 -
修复了
spawn
和co_spawn
实现,以在正确的执行器上分派取消处理程序。 -
更改了“dispatch”的语义,表示执行器按原样使用。
-
弃用了
execution::execute
自定义点和发送者/接收者工具。 -
添加了 C++11
parallel_group
示例。 -
修复了示例代码,使其不使用已弃用的
resolve
转换。 -
修复了
experimental::channel_traits
特化中的歧义。 -
为
R(error_code)
签名添加了专门的通道实现。 -
使
cancelled()
在async_compose
“self”对象上公开。 -
为
async_compose
“self”对象添加了 io_executor_type 和 get_io_executor。 -
修复了 Windows 重叠句柄的
release()
实现。 -
为
experimental::coro
启用了延迟等待,规范化了experimental::use_coro
,并修复了分配器处理。 -
清理了
experimental::promise
并使其成为异步操作对象。 -
约束了在需要
blocking.never
能力上的post
/defer
重载。 -
更改了描述符实现,以便在设置非阻塞模式时,如果
ioctl
调用失败并返回ENOTTY
,则回退到fcntl
。 -
修复了与使用
sprintf
相关的 Xcode 弃用警告。 -
修复了在内部线程上运行
select_reactor::run
时传递的参数。 -
修复了定义
BOOST_ASIO_DISABLE_SMALL_BLOCK_RECYCLING
时的编译错误。 -
更新了 Clang 14 及更高版本上 C++20 协程支持的检测。
-
更改了标准库功能检测,以便在以 C++17 或更高版本为目标时始终启用
std::invoke_result
。 -
修复了 MSVC 中返回类型推导的检测。
-
更新了异步操作要求,以放宽对关联执行器的要求。
-
添加了io_uring到实现说明中。
-
请参阅修订历史以获取更多详细信息。
-
-
Beast:
-
添加
buffers_generator
-
添加
beast::http::message_generator
-
添加了
buffer_ref
,以便 beast 缓冲区可以与 asio 一起使用。 -
支持每个操作的取消
-
C++20 可等待示例。
-
websocket 每消息压缩选项
-
websocket 超时选项 API
-
多个内容长度错误
-
支持默认完成和重新绑定
-
-
Container Hash:
-
重大更新。
-
已删除
boost::hash
的特化;现在始终调用hash_value
。 -
已删除对
BOOST_HASH_NO_EXTENSIONS
的支持。扩展始终启用。 -
现在支持所有标准容器。这包括
std::forward_list
和无序关联容器。 -
现在开箱即用地支持用户定义的容器(具有返回迭代器的
begin()
和end()
成员函数的类型)。 -
现在开箱即用地支持描述的结构和类(使用
BOOST_DESCRIBE_STRUCT
或BOOST_DESCRIBE_CLASS
注释的结构和类)。 -
hash_combine
已得到改进。 -
字符串哈希的性能(以及质量,由于上述更改)已得到提高。字符串的
boost::hash
现在在 64 位模式下通过 SMHasher。 -
文档已进行大幅修订,以反映这些更改。
-
-
Describe:
-
为了允许在使用
-pedantic
选项时包含enumerators.hpp
、bases.hpp
和members.hpp
,BOOST_DESCRIBE_ENUM
的调用已从modifiers.hpp
移至单独的标头modifier_description.hpp
。 因此,modifiers.hpp
不再包含enum.hpp
。 依赖于此隐式包含的代码可能会失败,并且需要修复以包含enum.hpp
。
-
-
Filesystem:
-
已弃用:在 v3 中已弃用,在 v4 中已删除从字符容器(例如
std::vector<char>
或std::list<wchar_t>
)构造、赋值和附加path
。 请改用字符串类型或迭代器。 -
已弃用:
boost/filesystem/path_traits.hpp
标头已弃用,将在未来的版本中删除。 该标头包含path
的实现细节,不应在用户代码中使用。 -
以前弃用的 API 现在将在使用时生成编译警告。 要禁止这些警告,可以在编译用户代码时定义宏
BOOST_FILESYSTEM_ALLOW_DEPRECATED
。 -
修复了由于不支持
*at
API 的 POSIX 系统上缺少包含文件而导致的编译错误。 (#250) -
在
path
构造函数、赋值和附加操作中添加了对std::string_view
、boost::string_view
和boost::container::string
(以及各自的wchar_t
对等项)的支持。 (#208) -
采用迭代器对的
path
构造函数、赋值和附加操作将不再接受值类型不是受支持的路径字符类型之一的迭代器。 -
在 Windows 上,重复数据删除的文件现在报告为常规文件,而不是重新分析文件。 (#262)
-
-
Histogram:
-
重大更新。
-
添加了新的
accumulators::fraction
以计算分数、它们的方差和置信区间 -
为分数添加了区间计算器:
utility::clopper_pearson
、utility::wilson_interval
、utility::jeffreys_interval
、utility::wald_interval
,它们可以计算具有任意置信水平的区间 -
添加了
utility::confidence_level
和utility::deviation
类型,分别以概率或标准偏差的倍数传递所有区间计算器的置信水平 -
修复了 C++20 中的内部
sub_array
和span
-
-
JSON:
-
添加了
object::stable_erase
。 -
为
std::istream
和value
的operator>>
添加了parse
重载。 -
为
value
添加了右值引用限定的访问器。 -
重新设计了转换特性。
-
添加了对描述的类和枚举、
std::optional
、std::variant
和类似 null 的类型(包括std::nullptr_t
、std::nullopt_t
和std::monotype
)的转换支持。 -
添加了从
value
到用户类型的非抛出转换。
-
-
Locale:
-
重大更新,包含一些重大更改。
-
现在需要 C++11 支持,已删除对 C++03 及更早版本的支持
-
一些枚举已转换为枚举类 - 避免名称冲突
-
通过 Boost.RegEx 中完成的细粒度配置选项替换
-sICU_LINK_LOCALE
&-sICU_LINK
-
修复了 libiconv 的检测,允许 Boost.Locale 在某些平台上(再次)构建
-
删除对
std::auto_ptr
的使用和支持 -
使在 Windows 上使用
wchar_t
的codecvt
假定/使用 UTF-16 编码 -
性能改进:使
basic_format
、date_time
&hold_ptr
可移动,修复了格式缓存的使用 -
使 Boost.Locale 与更多 ICU 版本兼容(尤其是测试)
-
修复了一些类的 RTTI 定义(可见性问题)
-
修复了 ICU 后端与某些 libc++ 版本的兼容性
-
修复了一些运算符的返回值,以正确返回非 const
*this
-
修复了
date_time
中年份负滚动的整数溢出 -
处理或抑制许多警告,使构建日志更简洁
-
添加了对更多 Windows 代码页的支持
-
修复了对 ISO-2022-JP 等 Windows 代码页的支持
-
-
Nowide:
-
修复了 MSVC 上测试的构建失败
-
-
Stacktrace:
-
该库不再使用 COM 初始化。 感谢 Alex Guteniev 提交的错误报告、说明和 PR PR#123!
-
该库现在可以在 b2 中检测 libbacktrace 可用性时使用
BOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE
宏值,感谢 Ben Gemmill 提交的错误报告 #115。 -
添加了
BOOST_STACKTRACE_BACKTRACE_FORCE_STATIC
宏,以在使用 libbacktrace 时强制使用单个 backtrace_state 静态实例。 感谢 Rasmus Thomsen 提交的错误报告 #118! -
避免在仅包含
boost/stacktrace/stacktrace.hpp
标头时出现未解析的引用。 感谢 Long Deng 提交的错误报告 #116。 -
通过不在 Windows 平台上调用
strlen
来优化堆栈跟踪打印。 感谢 Alex Guteniev 提交的错误报告 #122
-
-
STLInterfaces:
-
修复了 C++20 之前的迭代器中带有
const
value_type
的两个格式错误的iterator_interface
运算符。
-
-
System:
-
现在可以定义宏
BOOST_SYSTEM_DISABLE_THREADS
以禁用<mutex>
的使用(例如,在单线程 libstdc++ 上)。 -
为
result<>
添加了value_type
、error_type
、in_place_value
、in_place_error
。 -
为
result<>
添加了emplace
。
-
-
Unordered:
-
重大更新。
-
添加了基于开放寻址的快速容器
boost::unordered_flat_map
和boost::unordered_flat_set
。 -
为所有容器添加了 CTAD 推导指南。
-
添加了 LWG issue 2713 中指定的缺失构造函数。
-
-
Variant2:
-
添加了对
boost::json::value_from
和boost::json::value_to
的支持。
-
已测试的编译器
Boost 的主要测试编译器是
-
Linux
-
Clang: 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: 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: 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 管理了此版本。