Imported Upstream version 1.57.0
[platform/upstream/boost.git] / libs / range / doc / reference / synopsis.qbk
1 [/
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)
5 /]
6 [section:synopsis Synopsis]
7
8 ``
9 namespace boost
10 {
11     //
12     // Single Pass Range metafunctions
13     //
14
15     template< class T, class Enabler=void >
16     struct range_iterator;
17
18     template< class T >
19     struct range_value;
20
21     template< class T >
22     struct range_reference;
23
24     template< class T >
25     struct range_pointer;
26
27     template< class T >
28     struct range_category;
29
30     //
31     // Forward Range metafunctions
32     //
33
34     template< class T >
35     struct range_difference;
36
37     //
38     // Bidirectional Range metafunctions
39     //
40
41     template< class T >
42     struct range_reverse_iterator;
43
44     //
45     // Single Pass Range functions
46     //
47
48     template< class T >
49     typename range_iterator<T>::type
50     begin( T& r );
51
52     template< class T >
53     typename range_iterator<const T>::type
54     begin( const T& r );
55
56     template< class T >
57     typename range_iterator<T>::type
58     end( T& r );
59
60     template< class T >
61     typename range_iterator<const T>::type
62     end( const T& r );
63
64     template< class T >
65     bool
66     empty( const T& r );
67
68     //
69     // Forward Range functions
70     //
71
72     template< class T >
73     typename range_difference<T>::type
74     distance( const T& r );
75
76     template< class T >
77     typename range_size<T>::type
78     size( const T& r );
79
80     //
81     // Bidirectional Range functions
82     //
83
84     template< class T >
85     typename range_reverse_iterator<T>::type
86     rbegin( T& r );
87
88     template< class T >
89     typename range_reverse_iterator<const T>::type
90     rbegin( const T& r );
91
92     template< class T >
93     typename range_reverse_iterator<T>::type
94     rend( T& r );
95
96     template< class T >
97     typename range_reverse_iterator<const T>::type
98     rend( const T& r );
99
100     //
101     // Special const Range functions
102     //
103
104     template< class T >
105     typename range_iterator<const T>::type
106     const_begin( const T& r );
107
108     template< class T >
109     typename range_iterator<const T>::type
110     const_end( const T& r );
111
112     template< class T >
113     typename range_reverse_iterator<const T>::type
114     const_rbegin( const T& r );
115
116     template< class T >
117     typename range_reverse_iterator<const T>::type
118     const_rend( const T& r );
119
120     //
121     // String utilities
122     //
123
124     template< class T >
125     iterator_range< ... see below ... >
126     as_literal( T& r );
127
128     template< class T >
129     iterator_range< ... see below ... >
130     as_literal( const T& r );
131
132     template< class T >
133     iterator_range< typename range_iterator<T>::type >
134     as_array( T& r );
135
136     template< class T >
137     iterator_range< typename range_iterator<const T>::type >
138     as_array( const T& r );
139
140 } // namespace 'boost'
141 ``
142
143 [endsect]
144