Imported Upstream version 1.57.0
[platform/upstream/boost.git] / boost / range / range_fwd.hpp
1 // Boost.Range library
2 //
3 //  Copyright Neil Groves 2003-2004.
4 //  Use, modification and distribution is subject to the Boost Software
5 //  License, Version 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 #ifndef BOOST_RANGE_RANGE_FWD_HPP_INCLUDED
11 #define BOOST_RANGE_RANGE_FWD_HPP_INCLUDED
12
13 namespace boost
14 {
15
16 // Extension points
17     template<typename C, typename Enabler>
18     struct range_iterator;
19
20     template<typename C, typename Enabler>
21     struct range_mutable_iterator;
22
23     template<typename C, typename Enabler>
24     struct range_const_iterator;
25
26 // Core classes
27     template<typename IteratorT>
28     class iterator_range;
29
30     template<typename ForwardRange>
31     class sub_range;
32
33 // Meta-functions
34     template<typename T>
35     struct range_category;
36
37     template<typename T>
38     struct range_difference;
39
40     template<typename T>
41     struct range_pointer;
42
43     template<typename T>
44     struct range_reference;
45
46     template<typename T>
47     struct range_reverse_iterator;
48
49     template<typename T>
50     struct range_size;
51
52     template<typename T>
53     struct range_value;
54
55     template<typename T>
56     struct has_range_iterator;
57
58     template<typename T>
59     struct has_range_const_iterator;
60
61 } // namespace boost
62
63 #endif // include guard