版本 1.80.0
版本 1.80.0
2022年8月10日 21:25 GMT
平台 | 文件 | SHA256 哈希值 |
---|---|---|
unix | boost_1_80_0.tar.bz2 | 1e19565d82e43bc59209a168f5ac899d3ba471d55c7610c677d4ccf2c9c500c0 |
boost_1_80_0.tar.gz | 4b2136f98bdd1f5857f1c3dea9ac2018effe65286cf251534b6ae20cc45e1847 | |
windows | boost_1_80_0.7z | d12a2af721e22dbfb984ef061ee4c4ab2387f1904f6d65bc5acebaa34d6366ec |
boost_1_80_0.zip | e34756f63abe8ac34b35352743f17d061fcc825969a2dd8458264edb38781782 |
已知问题
这些是库作者提供的补丁,发现得太晚,无法在此版本中修复。
-
配置
新库
-
没有新库。
更新的库
-
Asio:
-
为所有异步操作添加了推导的尾随返回类型,以启用 C++11 的新形式
async_result
。 -
将
append
、prepend
、as_tuple
和deferred
移动到boost::asio
命名空间,并使其与 C++11 兼容。 -
使
experimental::parallel_group
与 C++11 兼容。 -
为连续容器(如
std::span
)添加了buffer()
重载。 -
为基于
awaitable<>
的协程添加了直接co_await
打包为函数对象的操作的能力。 -
将
spawn()
更改为基于完成令牌的异步操作,并添加了对取消的支持。现在,basic_yield_context
令牌支持仅移动类型和可变参数结果类型。当目标为 C++11 及更高版本时,spawn()
和basic_yield_context
是直接根据 Boost.Context 实现的。 -
添加了
is_async_operation
特性 和async_operation
概念。 -
添加了
completion_signature_of
特性。 -
为 posix 描述符、串行端口、管道、Windows
object_handle
、Windows 流句柄和 Windows 随机访问句柄添加了转换移动构造/赋值。 -
为管道、Windows 流句柄和 Windows 随机访问句柄添加了
release()
成员函数。 -
按照文档记录的
Endpoint
类型要求,启用了对从其data()
成员函数返回void
指针的Endpoint
实现的支持。 -
从
experimental::promise
中移除了all()
和race()
,因为experimental::parallel_group
涵盖了此功能。 -
为同步和异步操作产生的异常和错误代码添加了源位置。
-
修复了与 OpenSSL 3.0.4 及更高版本的兼容性。
-
修复了与以下内容的兼容性-masm=intel.
-
明确声明套接字
shutdown()
调用相对于同一套接字上的某些其他同步操作是线程安全的。 -
优化了仅执行器类型不同的 I/O 对象的移动构造。
-
修复了 clang/libc++ 的
std::invoke_result
的检测。 -
修复了
experimental::parallel_group
初始化错误地移动参数而不是转发参数的问题。 -
修复了
post()
、dispatch()
和defer()
实现中的排序问题。 -
修复了
awaitable<>
实现,以通过当前完成处理程序传播来自等待的初始化函数的异常。 -
修复了
std::aligned_alloc
与以下内容的检测gcc 7. -
更改为避免在新编译器上使用即将弃用的
std::aligned_storage
。 -
修复了旧 Apple 平台的
std::aligned_alloc
检测。 -
从
experimental::coro
实现中移除了错误的断言。 -
在使用 Intel C++ 构建时,添加了针对 Qt 定义的宏的防御。
-
更改了 Windows 上
select_reactor
的实现,以确保因未能重新创建其中断器的套接字而导致的任何异常都将允许通过io_context::run()
传播出去。 -
修复了各种编译器警告。
-
更新了所有组合操作示例和 C++11 超时示例,以使用新的
async_result
形式。 -
为 C++20 添加了组合操作和协程示例。
-
有关更多详细信息,请参阅修订历史。
-
-
文件系统:
-
在 Windows 上,如果无法使用
ERROR_ACCESS_DENIED
错误打开文件,则添加了用于查询文件属性的后备实现。这可能允许status
和symlink_status
成功用于非重分析点或符号链接的系统文件和目录。 (#234) -
在 Linux 上,如果
copy_file_range
在运行时因ENOSYS
而失败,则更正了切换到sendfile
copy_file
实现。sendfile
后备实现过去会跳过文件系统类型检查,并且可能在某些文件系统上失败。 -
在支持 POSIX.1-2008 中定义的
openat
和相关 API 的 POSIX 系统以及 Windows Vista 及更高版本上,改进了对 CVE-2022-21658 的remove_all
保护,该保护在之前的版本中已实现。之前的修复仍然可能导致在 某些条件下 移除意外文件。其他系统仍然容易受到攻击。
-
-
GIL: 注意: 我们计划在 Boost 1.80 后的一个或两个版本中重大变更为 C++17 作为最低要求的 C++ 语言版本 (#676)
-
已添加
-
GSoC 2020: 添加了 Perona-Malik 各向异性扩散算法 (PR#500)
-
GSoC 2020: 添加了直方图类和相关功能 (PR#499)
-
GSoC 2020: 添加了直方图均衡化功能 (PR#514)
-
GSoC 2020: 添加了直方图匹配算法 (PR#515)
-
GSoC 2020: 添加了自适应直方图均衡化算法 (PR#516)
-
GSoC 2020: 添加了标准 Hough 变换和圆形栅格化 (PR#512)
-
GSoC 2020: 为直线栅格化添加了 Bresenham 算法 (PR#512)
-
GSoC 2021: 添加了图像绕其中心任意角度旋转的功能 (PR#565)
-
GSoC 2021: 添加了基于 Jerry Van Aken 的“一种高效的椭圆绘制算法”的椭圆栅格化支持 (PR#585)
-
从兼容视图添加了
image
构造函数 (PR#520) -
为仿射
matrix3x2
添加了反函数 (PR#527) -
添加了标准形态学变换 (PR#541)
-
为
image
类添加了 C++17 多态内存资源 typedef (PR#529)
-
-
已更改
-
重大变更: 所需的最低 C++ 版本已从 C++11 更改为 C++14。目前,GIL 的大部分仍然可以使用 C++11 编译器编译。但是,不能保证它会保持这种状态,并且从现在开始,任何不支持至少 C++14 的编译器都被认为是不受支持的。
-
重大变更:
any_color_converted_view()
已弃用,将在下一个版本中删除。请改用color_converted_view()
,它提供相同的功能。 -
将数字扩展移动到核心 (PR#573)
-
添加了对 C++17 的
<filesystem>
的支持 (PR#636)std::filesystem
的可用性是自动检测的,除非定义了BOOST_GIL_IO_USE_BOOST_FILESYSTEM
宏,该宏强制首选 Boost.Filesystem。 -
使
packed_pixel
成为可平凡复制和可赋值的 (PR#679) -
用 C99 固定大小整数替换已弃用的 libtiff v4.3 typedef (PR#685)
-
-
已修复
-
修复了从 RGB 到 HSL 的转换 (PR#505)
-
修复了从 RGB 到有符号 CMYK 的转换 (PR#522)
-
删除了 hsv.hpp 中不必要的数字转换 (PR#530)
-
修复了引用像素元素的
homogeneous_color_base
的默认构造函数 (PR#542) -
修复了在
subchroma_image_view
中返回对本地临时对象的引用的问题 (PR#556) -
在 diffusion.hpp 中添加了缺少的头文件保护符 (PR#568)
-
修复了
any_image_view<>::const_t
(PR#526) -
修复了 I/O 扩展中与 C++20 的不兼容性 (PR#617)
-
确保所有示例都无错误构建 (PR#628)
-
修复了非 1d 可迭代视图的
for_each_pixel
(PR#621) -
已修复: PNG I/O 中的
is_equal_to_sixteen
是小于测试 (PR#650) -
重新允许具有两个组件的
devicen_t
(PR#654) 它在 Boost 1.72 中被意外删除 -
修复了空尺寸的
image
类中的内存泄漏 (PR#649)
-
-
致谢
-
Cypre55, Samuel Debionne, Mike-Devel, Edward Diener, Peter Dimov, Omar Emara, Dhruva Gole, Nicolas Herry, Eugene K, Avinal Kumar, Gaurav Kumar, Marco Langer, Pranam Lashkari, Mateusz Łoskot, Giovanni Mascellani, Debabrata Mandal, Gopi Krishna Menon, René Ferdinand Rivera Morell, Felix Morgner, Harshit Pant, Paul92, André Schröder, Scramjet911, Siddharth, Dirk Stolle, Prathamesh Tagore, theroyn, Olzhas Zhumabek
-
-
-
Graph:
-
致谢
-
Viktor Pti, Sebastian Brockmeyer, Etienne dg
-
-
Histogram:
-
修复了在某些条件下尝试迭代具有零大小轴(物理或逻辑)的直方图时,
indexed
中的段错误 -
删除了先前已弃用的 API
-
类
accumulators::thread_safe
: 使用accumulators::count<T, true>
-
方法
accumulators::sum::large
和accumulators::sum::small
: 使用accumulators::sum::large_part
和accumulators::sum::small_part
-
类型别名
algorithm::reduce_option
: 使用algorithm::reduce_command
-
模板函数
axis::traits::static_options
: 使用axis::traits::get_options
-
模板函数
axis::traits::static_is_inclusive
: 使用axis::traits::is_inclusive
-
类型别名
indexed::range_iterator
: 使用indexed::iterator
-
类型别名
indexed::accessor::reference
: 使用indexed::accessor::const_reference
-
-
-
JSON:
-
添加了非常量
value::at
重载。 -
添加了手动选择平台字节序的功能。
-
添加了
string::subview()
重载。 -
修复了
array::erase(it)
中的段错误。 -
修复了 libc++ 上
serialize
的低性能。 -
修复了 GCC 8 上到
std::string_view
的歧义转换。 -
修复了在大端平台上的解析。
-
修复了尾随逗号后注释的处理。
-
-
LEAF:
-
API 破坏性变更: throw leaf::exception(....) 现在变为 leaf::throw_exception(....)
-
修复了对罕见构建配置(启用异常处理,禁用诊断)的支持中的错误
-
在各处使用 nullptr 而不是 0
-
修复了书呆子式警告
-
-
Locale:
-
已弃用对 C++03 及更早版本的支持,下一个版本将需要 C++11
-
提供
-sICU_LINK_LOCALE
作为-sICU_LINK
的临时替代品,后者与 Boost.Regex 不兼容。-sICU_LINK_LOCALE
和-sICU_LINK
已弃用,将被ICU_*_NAME
选项替换,以与 Boost.Regex 兼容 -
修复了转换空字符串时 ICU
collator
实现中的 UB/断言失败 -
修复了与共享库中类的可见性相关的一些问题(仅限 Unix)
-
修复了与 C++20 模式的兼容性
-
修复了与
BOOST_USE_WINDOWS_H
的兼容性 -
修复了由于缺少包含文件而导致的构建失败
-
处理或抑制了许多警告,使构建日志更简洁
-
-
Multiprecision:
-
将 C++11 支持标记为已弃用: 从 2023 年起,我们将转向要求 C++14 作为最低标准级别。这将放弃对 GCC 5 之前版本和 MSVC 14.1 之前版本的支持。
-
修复了
boost/cstdfloat.hpp
和此库之间的冲突。 -
清理了许多 gcc 和 clang 警告。
-
修复了复合类型(复数、区间有理数)的输入流,其中流中存在尾部分隔符且没有空格。
-
修复了输入为 1、2 或 3 的
constexpr
整数平方根。 -
为 float128.hpp 添加了缺少的
#include
<memory>
。 -
更正了类
number
的 2 参数构造函数,以防止在某些情况下出现歧义。 -
更正并使 gmp.hpp 中被零除的行为更加一致。
-
-
Multi-index Containers:
-
维护工作。
-
-
Nowide:
-
批量文件 I/O 的主要性能改进
-
basic_filebuf
: 修复了fflush
失败时sync
的错误返回值 -
basic_filebuf
: 修复了在实际未写入任何内容但缓冲区处于“写入”模式下的极端情况下可能出现的未定义行为 -
basic_filebuf
: 限制字符的放回 (即pbackfail
) 仅允许放回缓冲的字符(可能只有一个字符)
-
-
System:
-
当
error_code
转换为std::error_code
然后转换回error_code
时,如果可能,现在会恢复原始的error_code
。 -
重做了从
error_category
到std::error_category
的转换,以避免在泄漏检查器上显示的一次性分配。 -
添加了一个允许替换
error_code
的源位置的构造函数,以及相应的assign
。 -
为
result
添加了一个转换构造函数。
-
更新的工具
-
Build:
-
包括 B2 版本 4.9.2 的发布。
-
测试的编译器
Boost 的主要测试编译器是
Boost 的主要测试编译器是
-
Linux
-
Clang: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0
-
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.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
-
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
-
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.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, Michael Caisse 和 Glen Fernandes 管理了此版本。