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
13namespace 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
64