1 //  Copyright Neil Groves 2010. Use, modification and
2 //  distribution is subject to the Boost Software License, Version
3 //  1.0. (See accompanying file LICENSE_1_0.txt or copy at
4 //  http://www.boost.org/LICENSE_1_0.txt)
5 //
6 //
7 // For more information, see http://www.boost.org/libs/range/
8 //
9 #ifndef BOOST_RANGE_ISTREAM_RANGE_HPP_INCLUDED
10 #define BOOST_RANGE_ISTREAM_RANGE_HPP_INCLUDED
11 
12 /*!
13  * \file istream_range.hpp
14  */
15 
16 #include <iterator>
17 #include <iosfwd>
18 #include <boost/config.hpp>
19 #include <boost/range/iterator_range.hpp>
20 
21 namespace boost
22 {
23     namespace range
24     {
25         template<class Type, class Elem, class Traits> inline
26             iterator_range<std::istream_iterator<Type, Elem, Traits> >
istream_range(std::basic_istream<Elem,Traits> & in)27         istream_range(std::basic_istream<Elem, Traits>& in)
28         {
29             return iterator_range<std::istream_iterator<Type, Elem, Traits> >(
30                 std::istream_iterator<Type, Elem, Traits>(in),
31                 std::istream_iterator<Type, Elem, Traits>());
32         }
33     } // namespace range
34     using range::istream_range;
35 } // namespace boost
36 
37 #endif // include guard
38