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)
istream_iterator, содержащий неизменённое значение.Исключения
Могут быть выброшены исключения, определяемые реализацией.
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| Отчёт об ошибке | Применяется к | Опубликованное поведение | Корректное поведение |
|---|---|---|---|
| LWG 260 | C++98 | тип возвращаемого значения operator++(int) был istream_iterator& | исправлен на istream_iterator |
| LWG 788 | C++98 | для определения того, завершается ли чтение неудачей, использовался operatorvoid* базового потока, но он был удалён в результате принятия решения по отчёту LWG 468 | вместо него используется fail() |
| LWG 838 | C++98 | не было ясно, можно ли инкрементировать итераторы конца потока | поведение не определено |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/iterator/istream_iterator/operator_arith