std::istream_iterator<T,CharT,Traits,Distance>::operator++, operator++(int)
来自cppreference.com
< cpp | iterator | istream iterator
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 | 读取是否失败会根据底层流的 operator void* 来判断, 但是 LWG 问题 468 的解决方案已经将它移除 |
改用 fail() |
LWG 838 | C++98 | 不明确是否可以自增流尾迭代器 | 行为未定义 |