]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/proto/include/boost/proto/detail/preprocessed/vararg_matches_impl.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / proto / include / boost / proto / detail / preprocessed / vararg_matches_impl.hpp
CommitLineData
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 {};