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 64