问题描述
C++ Algorithms library中的许多函数都有重载,其参数类型为ExecutionPolicy
,例如std::copy
。但是,我注意到std::ranges
命名空间中的相应函数没有这些并行重载。这是不幸的,因为这意味着在很多情况下,非范围变体会更有用。
这是什么原因?是否有向std::ranges
名称空间添加并行重载的建议?
解决方法
从埃里克·尼布尔(Eric Niebler)(和其他作者)得出的众多答案(在谈话中以及在他的github评论中)得出的结论,他们(委员会和作者)都没时间了。提案已经很大(请注意,它大量引用了<concepts>
提案),如果再加上更多提案,则可能会产生从<ranges>
到c++20不提供任何内容的风险。>
平行超载并不是错过船的唯一原因。缺少各种views
(由于时间不足 和一些语义问题(看着您zip
)),actions
为零,并且没有任何内容<numeric>
发生了变化。
<ranges>
肯定会进一步发展,但是完善建议需要时间。我们无法预测未来,但是如果<ranges>
没有随着c++23的壮大而令我感到非常惊讶。