mpl/set/aux_/iterator.hpp
Go to the documentation of this file.
1 
2 #ifndef BOOST_MPL_SET_AUX_ITERATOR_HPP_INCLUDED
3 #define BOOST_MPL_SET_AUX_ITERATOR_HPP_INCLUDED
4 
5 // Copyright Aleksey Gurtovoy 2003-2007
6 // Copyright David Abrahams 2003-2004
7 //
8 // Distributed under the Boost Software License, Version 1.0.
9 // (See accompanying file LICENSE_1_0.txt or copy at
10 // http://www.boost.org/LICENSE_1_0.txt)
11 //
12 // See http://www.boost.org/libs/mpl for documentation.
13 
14 // $Id: iterator.hpp 13472 2017-08-22 07:53:44Z richean $
15 // $Date: 2017-08-22 09:53:44 +0200 (Di, 22 Aug 2017) $
16 // $Revision: 13472 $
17 
19 #include <boost/mpl/has_key.hpp>
21 #include <boost/mpl/next.hpp>
22 #include <boost/mpl/eval_if.hpp>
23 #include <boost/mpl/if.hpp>
24 #include <boost/mpl/identity.hpp>
26 
27 namespace boost { namespace mpl {
28 
29 // used by 's_iter_get'
30 template< typename Set, typename Tail > struct s_iter;
31 
32 template< typename Set, typename Tail > struct s_iter_get
33  : eval_if<
34  has_key< Set,typename Tail::item_type_ >
35  , identity< s_iter<Set,Tail> >
36  , next< s_iter<Set,Tail> >
37  >
38 {
39 };
40 
41 template< typename Set, typename Tail > struct s_iter_impl
42 {
43  typedef Tail tail_;
45  typedef typename Tail::item_type_ type;
46 
47 #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
49 #endif
50 };
51 
52 #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
53 
54 template< typename Set, typename Tail >
55 struct next< s_iter<Set,Tail> >
56  : s_iter_get< Set,typename Tail::base >
57 {
58 };
59 
60 template< typename Set >
61 struct next< s_iter<Set,set0<> > >
62 {
64 };
65 
66 template< typename Set, typename Tail > struct s_iter
67  : s_iter_impl<Set,Tail>
68 {
69 };
70 
71 template< typename Set > struct s_iter<Set, set0<> >
72 {
74 };
75 
76 #else
77 
78 template< typename Set >
79 struct s_end_iter
80 {
81  typedef forward_iterator_tag category;
82  typedef s_iter<Set,set0<> > next;
83 };
84 
85 template< typename Set, typename Tail > struct s_iter
86  : if_<
87  is_same< Tail,set0<> >
88  , s_end_iter<Set>
89  , s_iter_impl<Set,Tail>
90  >::type
91 {
92 };
93 
94 #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
95 
96 }}
97 
98 #endif // BOOST_MPL_SET_AUX_ITERATOR_HPP_INCLUDED
identity.hpp
boost::mpl::s_iter_get
Definition: mpl/set/aux_/iterator.hpp:32
boost::mpl::set0
Definition: aux_/set0.hpp:53
boost::mpl::s_iter
Definition: mpl/set/aux_/iterator.hpp:30
ctps.hpp
boost::mpl::s_iter_impl
Definition: mpl/set/aux_/iterator.hpp:41
boost::type
Definition: type.hpp:14
boost
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
set0.hpp
boost::mpl::s_iter_impl::type
Tail::item_type_ type
Definition: mpl/set/aux_/iterator.hpp:45
eval_if.hpp
has_key.hpp
boost::mpl::eval_if
Definition: gcc/basic_bind.hpp:408
iterator_tags.hpp
boost::next
T next(T x)
Definition: next_prior.hpp:146
next.hpp
boost::mpl::next
Definition: mpl/next_prior.hpp:29
boost::mpl::forward_iterator_tag
Definition: iterator_tags.hpp:21
boost::mpl::s_iter_impl::category
forward_iterator_tag category
Definition: mpl/set/aux_/iterator.hpp:44
boost::mpl::s_iter_impl::tail_
Tail tail_
Definition: mpl/set/aux_/iterator.hpp:43
boost::mpl::s_iter< Set, set0<> >::category
forward_iterator_tag category
Definition: mpl/set/aux_/iterator.hpp:73
if.hpp
boost::mpl::next< s_iter< Set, set0<> > >::type
s_iter< Set, set0<> > type
Definition: mpl/set/aux_/iterator.hpp:63


sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:40:42