[range.istream.overview] (original) (raw)

25 Ranges library [ranges]

25.6 Range factories [range.factories]

25.6.6 Istream view [range.istream]

25.6.6.1 Overview [range.istream.overview]

basic_istream_view models input_range and reads (using operator>>) successive elements from its corresponding input stream.

Given a type T and a subexpression E of type U, if U modelsderived_from<basic_istream<typename U​::​char_type,typename U​::​traits_type>>, then the expression views​::​istream<T>(E) is expression-equivalent tobasic_istream_view<T, typename U​::​char_type,typename U​::​traits_type>(E); otherwise, views​::​istream<T>(E) is ill-formed.

[Example 1: auto ints = istringstream{"0 1 2 3 4"}; ranges::copy(views::istream<int>(ints), ostream_iterator<int>{cout, "-"}); — _end example_]