Требуется ли в стандарте C ++ оператор! = Должен предоставляться для данного типа итератора? - PullRequest
0 голосов
/ 28 ноября 2018

Стандарт C ++ 17 27.2.1.8 гласит:

Итератор j называется достижимым из итератора i тогда и только тогда, когда существует конечная последовательность применений выражения ++ iэто делает i == j.

То есть любой соответствующий тип итератора должен обеспечивать operator ==.

Однако я не нахожу ничего о том, что operator != является требованием для типов итераторов.

Требуется ли в стандарте C ++ operator != для данного типа итератора?

1 Ответ

0 голосов
/ 28 ноября 2018

См. C ++ 17 [input.iterators] / 2 Таблица 95 «Требования к итератору ввода».

Итераторы ввода требуют, чтобы a != b был действительным и вел себя так же, как !(a == b), если последний действителен. Ссылка на резюме cppreference.com

Итераторы вывода не должны поддерживать ни одну из этих операций.

...