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

来自cppreference.com
 
 
迭代器库
迭代器概念
迭代器原语
算法概念与工具
间接可调用概念
常用算法要求
工具
迭代器适配器
流迭代器
迭代器定制点
迭代器操作
(C++11)
(C++11)
范围访问
(C++11)(C++14)
(C++11)(C++14)
(C++17)(C++20)
(C++14)(C++14)
(C++14)(C++14)
(C++17)
(C++17)
 
 
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 不明确是否可以自增流尾迭代器 行为未定义