1 // Boost.Range library
2 //
3 //  Copyright Thorsten Ottosen 2006. Use, modification and
4 //  distribution is subject to the Boost Software License, Version
5 //  1.0. (See accompanying file LICENSE_1_0.txt or copy at
6 //  http://www.boost.org/LICENSE_1_0.txt)
7 //
8 // For more information, see http://www.boost.org/libs/range/
9 //
10 
11 #ifndef BOOST_RANGE_AS_ARRAY_HPP
12 #define BOOST_RANGE_AS_ARRAY_HPP
13 
14 #if defined(_MSC_VER)
15 # pragma once
16 #endif
17 
18 #include <boost/range/iterator_range.hpp>
19 #include <boost/range/detail/str_types.hpp>
20 
21 namespace boost
22 {
23 
24     template< class R >
25     inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<R>::type >
as_array(R & r)26     as_array( R& r )
27     {
28         return boost::make_iterator_range( r );
29     }
30 
31 #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
32 
33     template< class Range >
34     inline boost::iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<const Range>::type >
as_array(const Range & r)35     as_array( const Range& r )
36     {
37         return boost::make_iterator_range( r );
38     }
39 
40 #endif
41 
42 }
43 
44 #endif
45 
46