1
/*=============================================================================
2
Copyright (c) 2001-2006 Joel de Guzman
4
Distributed under the Boost Software License, Version 1.0. (See accompanying
5
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
==============================================================================*/
7
#if !defined(FUSION_SINGLE_VIEW_ITERATOR_05052005_0340)
8
#define FUSION_SINGLE_VIEW_ITERATOR_05052005_0340
10
#include <boost/fusion/support/detail/access.hpp>
11
#include <boost/fusion/support/iterator_base.hpp>
12
#include <boost/fusion/view/single_view/detail/deref_impl.hpp>
13
#include <boost/fusion/view/single_view/detail/next_impl.hpp>
14
#include <boost/fusion/view/single_view/detail/value_of_impl.hpp>
16
namespace boost { namespace fusion
18
struct single_view_iterator_tag;
19
struct forward_traversal_tag;
21
template <typename SingleView>
22
struct single_view_iterator_end
23
: iterator_base<single_view_iterator_end<SingleView> >
25
typedef single_view_iterator_tag fusion_tag;
26
typedef forward_traversal_tag category;
29
template <typename SingleView>
30
struct single_view_iterator
31
: iterator_base<single_view_iterator<SingleView> >
33
typedef single_view_iterator_tag fusion_tag;
34
typedef forward_traversal_tag category;
35
typedef typename SingleView::value_type value_type;
36
typedef SingleView single_view_type;
38
explicit single_view_iterator(single_view_type const& view)
1
/*=============================================================================
2
Copyright (c) 2001-2006 Joel de Guzman
4
Distributed under the Boost Software License, Version 1.0. (See accompanying
5
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
==============================================================================*/
7
#if !defined(FUSION_SINGLE_VIEW_ITERATOR_05052005_0340)
8
#define FUSION_SINGLE_VIEW_ITERATOR_05052005_0340
10
#include <boost/fusion/support/detail/access.hpp>
11
#include <boost/fusion/support/iterator_base.hpp>
12
#include <boost/fusion/view/single_view/detail/deref_impl.hpp>
13
#include <boost/fusion/view/single_view/detail/next_impl.hpp>
14
#include <boost/fusion/view/single_view/detail/value_of_impl.hpp>
16
namespace boost { namespace fusion
18
struct single_view_iterator_tag;
19
struct forward_traversal_tag;
21
template <typename SingleView>
22
struct single_view_iterator_end
23
: iterator_base<single_view_iterator_end<SingleView> >
25
typedef single_view_iterator_tag fusion_tag;
26
typedef forward_traversal_tag category;
29
template <typename SingleView>
30
struct single_view_iterator
31
: iterator_base<single_view_iterator<SingleView> >
33
typedef single_view_iterator_tag fusion_tag;
34
typedef forward_traversal_tag category;
35
typedef typename SingleView::value_type value_type;
36
typedef SingleView single_view_type;
38
explicit single_view_iterator(single_view_type const& view)