Effects: Constructs the end-of-stream iterator. If is_trivially_default_constructible_v<T> is true, then this constructor is a constexpr constructor.
Postconditions: in_stream == 0.
istream_iterator(istream_type& s);
Effects: Initializes in_stream with addressof(s). value may be initialized during construction or the first time it is referenced.
Postconditions: in_stream == addressof(s).
istream_iterator(const istream_iterator& x) = default;
Effects: Constructs a copy of x. If is_trivially_copy_constructible_v<T> is true, then this constructor is a trivial copy constructor.
Postconditions: in_stream == x.in_stream.
~istream_iterator() = default;
Effects: The iterator is destroyed. If is_trivially_destructible_v<T> is true, then this destructor is a trivial destructor.