为什么std :: ranges算法缺少并行重载采用执行策略参数?

问题描述

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

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

解决方法

从埃里克·尼布尔(Eric Niebler)(和其他作者)得出的众多答案(在谈话中以及在他的github评论中)得出的结论,他们(委员会和作者)都没时间了。提案已经很大(请注意,它大量引用了<concepts>提案),如果再加上更多提案,则可能会产生从<ranges>不提供任何内容的风险。>

平行超载并不是错过船的唯一原因。缺少各种views(由于时间不足 和一些语义问题(看着您zip)),actions为零,并且没有任何内容<numeric>发生了变化。

<ranges>肯定会进一步发展,但是完善建议需要时间。我们无法预测未来,但是如果<ranges>没有随着的壮大而令我感到非常惊讶。