C ++ 0x:标准算法的范围重载?

时间:2009-02-18 05:09:27

标签: c++ c++11

std::sort(range(c));

而不是

std::sort(c.begin(), c.end();

您是否希望下一个标准为标准算法提供范围重载?

Boost的range iterators是类似的,而TC ++ PL3e中提到的Bjarne Stroustrup的iseq()也是同样的想法。我看过the latest draft I could find,但没有看到提到的范围重载。

2 个答案:

答案 0 :(得分:4)

History页面提供了部分答案。

必须向std命名空间添加重载。请注意,这是一个库问题。您可以搜索存档以查找是否有人先前已提出将这些添加到库中的请求。如果没有,您可以提交缺陷报告。无论如何,当前语言都不会阻止您编写自己的包装器。因此,问题归结为很多其他人是否也希望将其作为标准库支持的功能。但这还不是全部。任何扩展,甚至是图书馆,都不仅仅是一种技术选择,而且还受到许多其他地缘政治问题的指导。你必须有一定数量的投票来获得这个。

坦率地说,我很乐意看到它进入。但是,请记住,这绝不是图书馆离不开的新颖/核心功能。所以,保持双手交叉。

答案 1 :(得分:0)

基于范围的for循环是我能找到的使用Range概念的草案标准中唯一的东西。我很自然地认为大多数标准算法都可以支持Ranges,但是在您链接的草案标准中没有提到它。

相关问题