]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
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 | {}; |