Это не значит, что вы можете поменять значения с помощью этих итераторов и вообще не поменять местами значения. Или, если он говорит, что это неправильно.
Своппинг является требованием к типу итератора; это лишь одно из нескольких основных правил для итераторов ([iterator.iterators/2.1]
).
Что касается сравнения выходных итераторов на равенство, то это утверждение по крайней мере частично ложно. Выходные итераторы не требуются для поддержки проверок на равенство, но все же могут ([iterator.concept.output/1]
). Там, где они не могут, это потому, что нет логического способа реализовать это. Например, вне моей головы, ostream_iterator
, вероятно, попадает в эту категорию, потому что, где он «указывает»? Как вы это представляете?
Таким образом, веб-сайт в лучшем случае вводит в заблуждение (в худшем случае это просто неправильно), но именно поэтому мы не учим C ++ на случайных веб-сайтах.