C ++ 0x: перегрузки диапазона для стандартных алгоритмов? - PullRequest
5 голосов
/ 18 февраля 2009
std::sort(range(c));

в отличие от

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

Ожидаете ли вы, что следующий стандарт обеспечит перегрузки диапазона для стандартных алгоритмов?

Итераторы диапазона Boost являются чем-то похожим, и iseq() Бьярна Страуструпа, упомянутые в TC ++ PL3e, также являются той же идеей. Я посмотрел последний черновик, который смог найти , но не заметил упомянутых перегрузок диапазона.

Ответы [ 2 ]

4 голосов
/ 18 февраля 2009

Страница History дает частичный ответ.

Должна быть настоятельная необходимость добавлять перегрузки в пространство имен std. Обратите внимание, это проблема библиотеки. Вы можете искать в архивах, чтобы узнать, не обращался ли кто-нибудь ранее с просьбой добавить их в библиотеку. Если их нет, вы можете отправить отчет о дефекте. Текущий язык никоим образом не мешает вам писать свои собственные обертки. Итак, вопрос сводится к тому, хотят ли многие другие использовать эту функцию как стандартную библиотеку или нет. Но это еще не все. Любое расширение, даже библиотеки, является не только техническим выбором, но и определяется многими другими геополитическими проблемами. Для этого нужно набрать определенное количество голосов.

Честно говоря, мне бы очень хотелось, чтобы это получилось. Однако помните, что это никоим образом не является новой / основной функцией, без которой библиотека не может обойтись. Так что держите пальцы скрещенными.

0 голосов
/ 18 февраля 2009

Цикл for на основе диапазона - единственное, что я нашел в проекте стандарта, использующего концепцию Range. Мне кажется естественным, что большинство стандартных алгоритмов могут поддерживать диапазоны, но об этом нет упоминания в проекте стандарта, который вы связали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...