C++ Algorithms library中的许多函数都有重载,其参数类型为ExecutionPolicy
,例如 std::copy
。但是,我注意到std::ranges
命名空间中的相应函数没有这些并行重载。这是不幸的,因为这意味着在许多情况下,非范围变体将更加有用。
这是什么原因呢?是否有建议将并行重载添加到std::ranges
命名空间?
最佳答案
从埃里克·尼 bool (Eric Niebler)(和其他作者)得出的众多答案(在谈话中以及在他的github评论中)得出的结论,他们(委员会和作者)都没时间了。该提案已经很大(请注意,该提案大量引用了<concepts>
提案),如果再添加更多提案,则可能会产生从<ranges>
到c++20不提供任何内容的风险。
并发过载并不是错过这条船的唯一原因。缺少各种views
(由于时间紧缺和一些语义问题(看着您,zip
)),actions
为零,而<numeric>
中的任何内容均未分类。<ranges>
肯定会进一步发展,但是完善建议需要时间。我们无法预测 future ,但是如果<ranges>
没有随着c++23变大,我将感到非常惊讶。
关于c++ - 为什么std::ranges算法缺少并行重载(采用执行策略参数)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63576136/