9 Iterators library [iterators]

9.8 Stream iterators [iterators.stream]

9.8.1 Class template istream_iterator [istream.iterator]

9.8.1.2 istream_iterator operations [istream.iterator.ops]

const T& operator*() const;

Returns: value.

const T* operator->() const;

Effects: Equivalent to: return addressof(operator*()).

istream_iterator& operator++();

Requires: in_stream != nullptr.

Effects: *in_stream >> value.

Returns: *this.

istream_iterator operator++(int);

Requires: in_stream != nullptr.

Effects:

istream_iterator tmp = *this;
*in_stream >> value;
return tmp;

template <class T, class charT, class traits, class Distance> bool operator==(const istream_iterator<T, charT, traits, Distance> &x, const istream_iterator<T, charT, traits, Distance> &y);

Returns: x.in_stream == y.in_stream.

template <class T, class charT, class traits, class Distance> bool operator==(default_sentinel x, const istream_iterator<T, charT, traits, Distance> &y);

Returns: nullptr == y.in_stream.

template <class T, class charT, class traits, class Distance> bool operator==(const istream_iterator<T, charT, traits, Distance> &x, default_sentinel y);

Returns: x.in_stream == nullptr.

template <class T, class charT, class traits, class Distance> bool operator!=(const istream_iterator<T, charT, traits, Distance>& x, const istream_iterator<T, charT, traits, Distance>& y); template <class T, class charT, class traits, class Distance> bool operator!=(default_sentinel x, const istream_iterator<T, charT, traits, Distance>& y); template <class T, class charT, class traits, class Distance> bool operator!=(const istream_iterator<T, charT, traits, Distance>& x, default_sentinel y);

Returns: !(x == y)