std::ranges::inclusive_scan与std::ranges::partial_sum标准支持情况问询
关于
std::ranges命名空间下inclusive_scan和partial_sum的标准入版情况 C++20纳入情况
- C20首次引入
std::ranges范围算法库时,仅覆盖了部分常用经典算法,**std::ranges::inclusive_scan和std::ranges::partial_sum确实未被纳入C20标准**,这也是你在对应版本的cppreference文档中检索不到相关内容的原因。 - C20的范围算法库当时优先完成了无状态的变换、过滤、查找、排序类算法,累加类的前缀和算法没有赶上C20的功能冻结节点。
C++23纳入情况
- 两个算法均已正式纳入C++23标准。
std::ranges::partial_sum功能和非范围版本的std::partial_sum对齐,计算输入范围的前缀和,将结果写入指定输出迭代器。std::ranges::inclusive_scan和非范围版本的std::inclusive_scan对齐,支持自定义二元操作、自定义初始值的前缀和计算,相比partial_sum灵活性更高。- 目前GCC 12、Clang 16、MSVC 2022 17.4及以上版本均已实现这两个范围版本算法,可以直接在符合C++23标准的编译环境中使用。
内容的提问来源于stack exchange,提问作者Touloudou
相关产品推荐
相关产品推荐

