Исходя из моего предыдущего вопроса , можем ли мы доказать , что стандарт позволяет передавать пустой диапазон стандартному алгоритму?
Пункт 24.1 / 7 определяет «пустой диапазон» как диапазон [i,i)
(где i
действителен), и i
может показаться «достижимым» от самого себя, но я не уверен, что это соответствуеткак доказательство.
В частности, мы сталкиваемся с проблемами при просмотре функций сортировки.Например, std::sort
:
Сложность: O(N log(N))
(где N
== last
- first
) сравнений
С log(0)
обычно считается неопределенным, и я не знаю, что такое 0*undefined
, может быть здесь проблема?
(Да, хорошо, я немного педантиченКонечно, ни одна уважающая себя реализация stdlib не вызовет практической проблемы с пустым диапазоном, переданным в std::sort
. Но мне интересно, есть ли здесь потенциальная дыра в стандартной формулировке.)