1 /*============================================================================= 2 Copyright (c) 2006 Tobias Schwinger 3 Copyright (c) 2002-2006 Hartmut Kaiser 4 http://spirit.sourceforge.net/ 5 6 Distributed under the Boost Software License, Version 1.0. (See accompanying 7 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 8 =============================================================================*/ 9 #if !defined(BOOST_SPIRIT_POSITION_ITERATOR_FWD_HPP) 10 #define BOOST_SPIRIT_POSITION_ITERATOR_FWD_HPP 11 12 #include <string> 13 #include <iterator> // for std::iterator_traits 14 #include <boost/spirit/home/classic/namespace.hpp> 15 #include <boost/spirit/home/classic/core/nil.hpp> 16 17 namespace boost { namespace spirit { 18 19 BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN 20 21 template <typename String = std::string> 22 struct file_position_base; 23 24 typedef file_position_base<std::string> file_position; 25 26 template <typename String = std::string> 27 struct file_position_without_column_base; 28 29 typedef file_position_without_column_base<std::string> file_position_without_column; 30 31 template < 32 typename ForwardIteratorT, 33 typename PositionT = file_position_base< 34 std::basic_string< 35 typename std::iterator_traits<ForwardIteratorT>::value_type 36 > 37 >, 38 typename SelfT = nil_t 39 > 40 class position_iterator; 41 42 template 43 < 44 typename ForwardIteratorT, 45 typename PositionT = file_position_base< 46 std::basic_string< 47 typename std::iterator_traits<ForwardIteratorT>::value_type 48 > 49 > 50 > 51 class position_iterator2; 52 53 template <typename PositionT> class position_policy; 54 55 BOOST_SPIRIT_CLASSIC_NAMESPACE_END 56 57 }} // namespace BOOST_SPIRIT_CLASSIC_NS 58 59 #endif 60 61