2 Copyright 2010 Neil Groves
3 Distributed under the Boost Software License, Version 1.0.
4 (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 [section:synopsis Synopsis]
12 // Single Pass Range metafunctions
15 template< class T, class Enabler=void >
16 struct range_iterator;
22 struct range_reference;
28 struct range_category;
31 // Forward Range metafunctions
35 struct range_difference;
38 // Bidirectional Range metafunctions
42 struct range_reverse_iterator;
45 // Single Pass Range functions
49 typename range_iterator<T>::type
53 typename range_iterator<const T>::type
57 typename range_iterator<T>::type
61 typename range_iterator<const T>::type
69 // Forward Range functions
73 typename range_difference<T>::type
74 distance( const T& r );
77 typename range_size<T>::type
81 // Bidirectional Range functions
85 typename range_reverse_iterator<T>::type
89 typename range_reverse_iterator<const T>::type
93 typename range_reverse_iterator<T>::type
97 typename range_reverse_iterator<const T>::type
101 // Special const Range functions
105 typename range_iterator<const T>::type
106 const_begin( const T& r );
109 typename range_iterator<const T>::type
110 const_end( const T& r );
113 typename range_reverse_iterator<const T>::type
114 const_rbegin( const T& r );
117 typename range_reverse_iterator<const T>::type
118 const_rend( const T& r );
125 iterator_range< ... see below ... >
129 iterator_range< ... see below ... >
130 as_literal( const T& r );
133 iterator_range< typename range_iterator<T>::type >
137 iterator_range< typename range_iterator<const T>::type >
138 as_array( const T& r );
140 } // namespace 'boost'