为什么 std::ranges 算法缺少并行重载(采用执行策略参数)?
Why do std::ranges algorithms lack parallel overloads (taking an execution policy parameter)?
C++ Algorithms library have overloads taking a parameter of type ExecutionPolicy
, e.g. std::copy
中的许多功能。但是,我注意到 std::ranges
命名空间中的相应函数没有这些并行重载。这很不幸,因为这意味着在许多情况下,非远程变体会更有用。
这是什么原因?是否有建议向 std::ranges
命名空间添加并行重载?
从 Eric Niebler(和其他作者)的大量回答(在会谈中和他的 github 评论中)得出结论,他们(委员会和作者)只是 运行 没时间了。该提案已经很大(请注意它大量引用了 <concepts>
提案这一事实)并且向其中添加更多内容会产生不运送从 <ranges>
到 c++20 的任何内容的风险。
并行重载并不是唯一错过机会的事情。各种views
缺席(都是因为时间不够和一些语义问题(看着你,zip
)),零个actions
<numeric>
中的任何内容都没有 运行gified。
<ranges>
肯定会进一步发展,但完善提案需要时间。我们无法预测未来,但如果 <ranges>
没有随着 c++23 变得更大,我会感到非常惊讶。
C++ Algorithms library have overloads taking a parameter of type ExecutionPolicy
, e.g. std::copy
中的许多功能。但是,我注意到 std::ranges
命名空间中的相应函数没有这些并行重载。这很不幸,因为这意味着在许多情况下,非远程变体会更有用。
这是什么原因?是否有建议向 std::ranges
命名空间添加并行重载?
从 Eric Niebler(和其他作者)的大量回答(在会谈中和他的 github 评论中)得出结论,他们(委员会和作者)只是 运行 没时间了。该提案已经很大(请注意它大量引用了 <concepts>
提案这一事实)并且向其中添加更多内容会产生不运送从 <ranges>
到 c++20 的任何内容的风险。
并行重载并不是唯一错过机会的事情。各种views
缺席(都是因为时间不够和一些语义问题(看着你,zip
)),零个actions
<numeric>
中的任何内容都没有 运行gified。
<ranges>
肯定会进一步发展,但完善提案需要时间。我们无法预测未来,但如果 <ranges>
没有随着 c++23 变得更大,我会感到非常惊讶。