Spec-Zone.ru › C++

std::istream_iterator<T,CharT,Traits,Distance>::operator++, operator++(int)

istream_iterator& operator++();
(1)
istream_iterator operator++( int );
(2)

Считывает значение из базового потока (используя его operator>>) и сохраняет его в объект итератора. Если чтение завершилось ошибкой (базовый поток fail() возвращает true), итератор становится итератором конца потока.

Поведение не определено, если итератор является итератором конца потока.

Параметры

(нет)

Возвращаемое значение

1) *this
2) Копию значения, которая не изменяется.

Исключения

Может генерировать исключения, определяемые реализацией.

Отчёты о дефектах

Следующие отчёты о дефектах, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применено к Поведение, как опубликовано Корректное поведение
LWG 260 C++98 тип возвращаемого значения operator++(int) был istream_iterator& исправлено на istream_iterator
LWG 788 C++98 базовый оператор потока void* использовался для определения того, завершилось ли чтение ошибкой, но он был удалён в результате решения LWG issue 468 использует fail() вместо него
LWG 838 C++98 не было ясно, можно ли инкрементировать итераторы конца потока поведение не определено

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/iterator/istream_iterator/operator_arith

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API