首页 > 解决方案 > 为什么 std::ranges 算法缺少并行重载(采用执行策略参数)?

问题描述

C++ 算法库中的许多函数都具有采用类型参数的重载ExecutionPolicy,例如std::copy. 但是,我注意到std::ranges命名空间中的相应函数没有这些并行重载。这是不幸的,因为这意味着在许多情况下,非范围变体将更有用。

这是什么原因?是否有向std::ranges命名空间添加并行重载的建议?

标签: c++parallel-processingiteratorc++20std-ranges

解决方案


从 Eric Niebler(和其他作者)的众多答案(在会谈期间和他的 github 评论中)得出结论,他们(委员会和作者)只是没时间了。该提案已经很大(请注意,它大量引用了这些<concepts>提案),并且添加更多内容将产生不从 c++20 运送任何东西<ranges>

并行超载并不是唯一错过的事情。各种views不存在(由于时间不足一些语义问题(看着你,zip)),零actions并且没有任何<numeric>内容。

<ranges>肯定会进一步发展,但完善提案需要时间。我们无法预测未来,但如果<ranges>没有使用变得更大,我会感到非常惊讶。


推荐阅读