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