版本 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<>
实现,以通过当前完成处理程序传播来自等待的初始化函数的异常。 -
修复了使用gcc 检测
std::aligned_alloc
的问题 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
回退实现 used to skip the filesystem type check and could fail for some filesystems. -
在支持 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: 添加了标准霍夫变换和圆形光栅化 (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.Filesystem 的BOOST_GIL_IO_USE_BOOST_FILESYSTEM
宏。 -
使
packed_pixel
可平凡复制和赋值(PR#679) -
将已弃用的 libtiff v4.3 类型定义替换为 C99 固定大小整数(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)
-
修复非一维可迭代视图的
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
-
-
-
图表:
-
致谢
-
Viktor Pti, Sebastian Brockmeyer, Etienne dg
-
-
直方图:
-
修复了在某些情况下尝试迭代零大小(物理或逻辑)轴的直方图时,
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
-
修复了警告
-
-
区域设置:
-
弃用对 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
的兼容性 -
修复由于缺少包含文件导致的构建失败
-
处理或抑制许多警告,使构建日志更清晰
-
-
多精度:
-
**将 C++11 支持标记为已弃用**:从 2023 年开始,我们将要求 C++14 作为最低标准级别。这将放弃对 5 之前的 GCC 版本和 14.1 之前的 MSVC 的支持。
-
修复
boost/cstdfloat.hpp
与此库之间的冲突。 -
清理大量 gcc 和 clang 警告。
-
修复复合类型(复数、区间有理数)的输入流问题,其中流中存在尾随分隔符但没有空格。
-
修复输入为 1、2 或 3 时的
constexpr
整数平方根。 -
将缺少的
#include
<memory>
添加到 float128.hpp。 -
更正类
number
的双参数构造函数,以防止在某些情况下出现歧义。 -
更正并在 gmp.hpp 中使除以零的行为更加一致。
-
-
多索引容器:
-
维护工作。
-
-
Nowide:
-
文件批量 I/O 的主要性能改进
-
basic_filebuf
:修复fflush
失败时sync
的错误返回值 -
basic_filebuf
:修复在没有实际写入任何内容但缓冲区处于“写入”模式的极端情况下可能出现的未定义行为 -
basic_filebuf
:限制字符的回退(即pbackfail
),仅允许回退缓冲字符(可能只有 1 个字符)
-
-
系统:
-
当
error_code
转换为std::error_code
然后再转换回error_code
时,如果可能,现在将恢复原始值。 -
重新设计了从
error_category
到std::error_category
的转换,以避免泄漏检查器中出现的一次性分配。 -
添加了一个构造函数,允许替换
error_code
的源位置,以及相应的assign
方法。 -
向
result
添加了转换构造函数。
-
-
实用程序:
更新的工具
-
构建:
-
包含 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 管理了此版本。