PageRenderTime 31ms CodeModel.GetById 1ms app.highlight 27ms RepoModel.GetById 2ms app.codeStats 0ms

/Src/Dependencies/Boost/boost/proto/detail/preprocessed/vararg_matches_impl.hpp

http://hadesmem.googlecode.com/
C++ Header | 178 lines | 171 code | 0 blank | 7 comment | 0 complexity | 034ad31b08c47f74386e0411758d806e MD5 | raw file
  1    ///////////////////////////////////////////////////////////////////////////////
  2    /// \file vararg_matches_impl.hpp
  3    /// Specializations of the vararg_matches_impl template
  4    //
  5    //  Copyright 2008 Eric Niebler. Distributed under the Boost
  6    //  Software License, Version 1.0. (See accompanying file
  7    //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  8    template<typename Args, typename Back, long To>
  9    struct vararg_matches_impl<Args, Back, 2, To>
 10      : and_2<
 11            matches_<
 12                typename detail::expr_traits<typename Args::child1>::value_type::proto_derived_expr
 13              , typename detail::expr_traits<typename Args::child1>::value_type::proto_grammar
 14              , Back
 15            >::value
 16          , vararg_matches_impl<Args, Back, 2 + 1, To>
 17        >
 18    {};
 19    template<typename Args, typename Back>
 20    struct vararg_matches_impl<Args, Back, 2, 2>
 21      : matches_<
 22            typename detail::expr_traits<typename Args::child1>::value_type::proto_derived_expr
 23          , typename detail::expr_traits<typename Args::child1>::value_type::proto_grammar
 24          , Back
 25        >
 26    {};
 27    template<typename Args, typename Back, long To>
 28    struct vararg_matches_impl<Args, Back, 3, To>
 29      : and_2<
 30            matches_<
 31                typename detail::expr_traits<typename Args::child2>::value_type::proto_derived_expr
 32              , typename detail::expr_traits<typename Args::child2>::value_type::proto_grammar
 33              , Back
 34            >::value
 35          , vararg_matches_impl<Args, Back, 3 + 1, To>
 36        >
 37    {};
 38    template<typename Args, typename Back>
 39    struct vararg_matches_impl<Args, Back, 3, 3>
 40      : matches_<
 41            typename detail::expr_traits<typename Args::child2>::value_type::proto_derived_expr
 42          , typename detail::expr_traits<typename Args::child2>::value_type::proto_grammar
 43          , Back
 44        >
 45    {};
 46    template<typename Args, typename Back, long To>
 47    struct vararg_matches_impl<Args, Back, 4, To>
 48      : and_2<
 49            matches_<
 50                typename detail::expr_traits<typename Args::child3>::value_type::proto_derived_expr
 51              , typename detail::expr_traits<typename Args::child3>::value_type::proto_grammar
 52              , Back
 53            >::value
 54          , vararg_matches_impl<Args, Back, 4 + 1, To>
 55        >
 56    {};
 57    template<typename Args, typename Back>
 58    struct vararg_matches_impl<Args, Back, 4, 4>
 59      : matches_<
 60            typename detail::expr_traits<typename Args::child3>::value_type::proto_derived_expr
 61          , typename detail::expr_traits<typename Args::child3>::value_type::proto_grammar
 62          , Back
 63        >
 64    {};
 65    template<typename Args, typename Back, long To>
 66    struct vararg_matches_impl<Args, Back, 5, To>
 67      : and_2<
 68            matches_<
 69                typename detail::expr_traits<typename Args::child4>::value_type::proto_derived_expr
 70              , typename detail::expr_traits<typename Args::child4>::value_type::proto_grammar
 71              , Back
 72            >::value
 73          , vararg_matches_impl<Args, Back, 5 + 1, To>
 74        >
 75    {};
 76    template<typename Args, typename Back>
 77    struct vararg_matches_impl<Args, Back, 5, 5>
 78      : matches_<
 79            typename detail::expr_traits<typename Args::child4>::value_type::proto_derived_expr
 80          , typename detail::expr_traits<typename Args::child4>::value_type::proto_grammar
 81          , Back
 82        >
 83    {};
 84    template<typename Args, typename Back, long To>
 85    struct vararg_matches_impl<Args, Back, 6, To>
 86      : and_2<
 87            matches_<
 88                typename detail::expr_traits<typename Args::child5>::value_type::proto_derived_expr
 89              , typename detail::expr_traits<typename Args::child5>::value_type::proto_grammar
 90              , Back
 91            >::value
 92          , vararg_matches_impl<Args, Back, 6 + 1, To>
 93        >
 94    {};
 95    template<typename Args, typename Back>
 96    struct vararg_matches_impl<Args, Back, 6, 6>
 97      : matches_<
 98            typename detail::expr_traits<typename Args::child5>::value_type::proto_derived_expr
 99          , typename detail::expr_traits<typename Args::child5>::value_type::proto_grammar
100          , Back
101        >
102    {};
103    template<typename Args, typename Back, long To>
104    struct vararg_matches_impl<Args, Back, 7, To>
105      : and_2<
106            matches_<
107                typename detail::expr_traits<typename Args::child6>::value_type::proto_derived_expr
108              , typename detail::expr_traits<typename Args::child6>::value_type::proto_grammar
109              , Back
110            >::value
111          , vararg_matches_impl<Args, Back, 7 + 1, To>
112        >
113    {};
114    template<typename Args, typename Back>
115    struct vararg_matches_impl<Args, Back, 7, 7>
116      : matches_<
117            typename detail::expr_traits<typename Args::child6>::value_type::proto_derived_expr
118          , typename detail::expr_traits<typename Args::child6>::value_type::proto_grammar
119          , Back
120        >
121    {};
122    template<typename Args, typename Back, long To>
123    struct vararg_matches_impl<Args, Back, 8, To>
124      : and_2<
125            matches_<
126                typename detail::expr_traits<typename Args::child7>::value_type::proto_derived_expr
127              , typename detail::expr_traits<typename Args::child7>::value_type::proto_grammar
128              , Back
129            >::value
130          , vararg_matches_impl<Args, Back, 8 + 1, To>
131        >
132    {};
133    template<typename Args, typename Back>
134    struct vararg_matches_impl<Args, Back, 8, 8>
135      : matches_<
136            typename detail::expr_traits<typename Args::child7>::value_type::proto_derived_expr
137          , typename detail::expr_traits<typename Args::child7>::value_type::proto_grammar
138          , Back
139        >
140    {};
141    template<typename Args, typename Back, long To>
142    struct vararg_matches_impl<Args, Back, 9, To>
143      : and_2<
144            matches_<
145                typename detail::expr_traits<typename Args::child8>::value_type::proto_derived_expr
146              , typename detail::expr_traits<typename Args::child8>::value_type::proto_grammar
147              , Back
148            >::value
149          , vararg_matches_impl<Args, Back, 9 + 1, To>
150        >
151    {};
152    template<typename Args, typename Back>
153    struct vararg_matches_impl<Args, Back, 9, 9>
154      : matches_<
155            typename detail::expr_traits<typename Args::child8>::value_type::proto_derived_expr
156          , typename detail::expr_traits<typename Args::child8>::value_type::proto_grammar
157          , Back
158        >
159    {};
160    template<typename Args, typename Back, long To>
161    struct vararg_matches_impl<Args, Back, 10, To>
162      : and_2<
163            matches_<
164                typename detail::expr_traits<typename Args::child9>::value_type::proto_derived_expr
165              , typename detail::expr_traits<typename Args::child9>::value_type::proto_grammar
166              , Back
167            >::value
168          , vararg_matches_impl<Args, Back, 10 + 1, To>
169        >
170    {};
171    template<typename Args, typename Back>
172    struct vararg_matches_impl<Args, Back, 10, 10>
173      : matches_<
174            typename detail::expr_traits<typename Args::child9>::value_type::proto_derived_expr
175          , typename detail::expr_traits<typename Args::child9>::value_type::proto_grammar
176          , Back
177        >
178    {};