]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/proto/include/boost/proto/transform/detail/preprocessed/pass_through_impl.hpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / proto / include / boost / proto / transform / detail / preprocessed / pass_through_impl.hpp
1 ///////////////////////////////////////////////////////////////////////////////
2 /// \file pass_through_impl.hpp
3 ///
4 /// Specializations of pass_through_impl, used in the implementation of the
5 /// pass_through transform.
6 //
7 // Copyright 2008 Eric Niebler. Distributed under the Boost
8 // Software License, Version 1.0. (See accompanying file
9 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
10 template<typename Grammar, typename Domain, typename Expr, typename State, typename Data>
11 struct pass_through_impl<Grammar, Domain, Expr, State, Data, 1>
12 : transform_impl<Expr, State, Data>
13 {
14 typedef typename pass_through_impl::expr unref_expr;
15 typedef
16 typename mpl::if_c<
17 is_same<Domain, deduce_domain>::value
18 , typename unref_expr::proto_domain
19 , Domain
20 >::type
21 result_domain;
22 typedef
23 typename base_expr<
24 result_domain
25 , typename unref_expr::proto_tag
26 , list1<
27 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >::result_type
28 >
29 >::type
30 expr_type;
31 typedef typename result_domain::proto_generator proto_generator;
32 typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type result_type;
33 BOOST_FORCEINLINE
34 BOOST_PROTO_RETURN_TYPE_STRICT_LOOSE(result_type, result_type const)
35 operator ()(
36 typename pass_through_impl::expr_param e
37 , typename pass_through_impl::state_param s
38 , typename pass_through_impl::data_param d
39 ) const
40 {
41 expr_type const that = {
42 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >()( e.proto_base().child0, s, d )
43 };
44
45
46
47 detail::ignore_unused(&that);
48 return proto_generator()(that);
49 }
50 };
51 template<typename Grammar, typename Domain, typename Expr, typename State, typename Data>
52 struct pass_through_impl<Grammar, Domain, Expr, State, Data, 2>
53 : transform_impl<Expr, State, Data>
54 {
55 typedef typename pass_through_impl::expr unref_expr;
56 typedef
57 typename mpl::if_c<
58 is_same<Domain, deduce_domain>::value
59 , typename unref_expr::proto_domain
60 , Domain
61 >::type
62 result_domain;
63 typedef
64 typename base_expr<
65 result_domain
66 , typename unref_expr::proto_tag
67 , list2<
68 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >::result_type , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >::result_type
69 >
70 >::type
71 expr_type;
72 typedef typename result_domain::proto_generator proto_generator;
73 typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type result_type;
74 BOOST_FORCEINLINE
75 BOOST_PROTO_RETURN_TYPE_STRICT_LOOSE(result_type, result_type const)
76 operator ()(
77 typename pass_through_impl::expr_param e
78 , typename pass_through_impl::state_param s
79 , typename pass_through_impl::data_param d
80 ) const
81 {
82 expr_type const that = {
83 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >()( e.proto_base().child0, s, d ) , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >()( e.proto_base().child1, s, d )
84 };
85
86
87
88 detail::ignore_unused(&that);
89 return proto_generator()(that);
90 }
91 };
92 template<typename Grammar, typename Domain, typename Expr, typename State, typename Data>
93 struct pass_through_impl<Grammar, Domain, Expr, State, Data, 3>
94 : transform_impl<Expr, State, Data>
95 {
96 typedef typename pass_through_impl::expr unref_expr;
97 typedef
98 typename mpl::if_c<
99 is_same<Domain, deduce_domain>::value
100 , typename unref_expr::proto_domain
101 , Domain
102 >::type
103 result_domain;
104 typedef
105 typename base_expr<
106 result_domain
107 , typename unref_expr::proto_tag
108 , list3<
109 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >::result_type , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >::result_type , typename Grammar::proto_child2::template impl< typename result_of::child_c<Expr, 2>::type , State , Data >::result_type
110 >
111 >::type
112 expr_type;
113 typedef typename result_domain::proto_generator proto_generator;
114 typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type result_type;
115 BOOST_FORCEINLINE
116 BOOST_PROTO_RETURN_TYPE_STRICT_LOOSE(result_type, result_type const)
117 operator ()(
118 typename pass_through_impl::expr_param e
119 , typename pass_through_impl::state_param s
120 , typename pass_through_impl::data_param d
121 ) const
122 {
123 expr_type const that = {
124 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >()( e.proto_base().child0, s, d ) , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >()( e.proto_base().child1, s, d ) , typename Grammar::proto_child2::template impl< typename result_of::child_c<Expr, 2>::type , State , Data >()( e.proto_base().child2, s, d )
125 };
126
127
128
129 detail::ignore_unused(&that);
130 return proto_generator()(that);
131 }
132 };
133 template<typename Grammar, typename Domain, typename Expr, typename State, typename Data>
134 struct pass_through_impl<Grammar, Domain, Expr, State, Data, 4>
135 : transform_impl<Expr, State, Data>
136 {
137 typedef typename pass_through_impl::expr unref_expr;
138 typedef
139 typename mpl::if_c<
140 is_same<Domain, deduce_domain>::value
141 , typename unref_expr::proto_domain
142 , Domain
143 >::type
144 result_domain;
145 typedef
146 typename base_expr<
147 result_domain
148 , typename unref_expr::proto_tag
149 , list4<
150 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >::result_type , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >::result_type , typename Grammar::proto_child2::template impl< typename result_of::child_c<Expr, 2>::type , State , Data >::result_type , typename Grammar::proto_child3::template impl< typename result_of::child_c<Expr, 3>::type , State , Data >::result_type
151 >
152 >::type
153 expr_type;
154 typedef typename result_domain::proto_generator proto_generator;
155 typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type result_type;
156 BOOST_FORCEINLINE
157 BOOST_PROTO_RETURN_TYPE_STRICT_LOOSE(result_type, result_type const)
158 operator ()(
159 typename pass_through_impl::expr_param e
160 , typename pass_through_impl::state_param s
161 , typename pass_through_impl::data_param d
162 ) const
163 {
164 expr_type const that = {
165 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >()( e.proto_base().child0, s, d ) , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >()( e.proto_base().child1, s, d ) , typename Grammar::proto_child2::template impl< typename result_of::child_c<Expr, 2>::type , State , Data >()( e.proto_base().child2, s, d ) , typename Grammar::proto_child3::template impl< typename result_of::child_c<Expr, 3>::type , State , Data >()( e.proto_base().child3, s, d )
166 };
167
168
169
170 detail::ignore_unused(&that);
171 return proto_generator()(that);
172 }
173 };
174 template<typename Grammar, typename Domain, typename Expr, typename State, typename Data>
175 struct pass_through_impl<Grammar, Domain, Expr, State, Data, 5>
176 : transform_impl<Expr, State, Data>
177 {
178 typedef typename pass_through_impl::expr unref_expr;
179 typedef
180 typename mpl::if_c<
181 is_same<Domain, deduce_domain>::value
182 , typename unref_expr::proto_domain
183 , Domain
184 >::type
185 result_domain;
186 typedef
187 typename base_expr<
188 result_domain
189 , typename unref_expr::proto_tag
190 , list5<
191 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >::result_type , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >::result_type , typename Grammar::proto_child2::template impl< typename result_of::child_c<Expr, 2>::type , State , Data >::result_type , typename Grammar::proto_child3::template impl< typename result_of::child_c<Expr, 3>::type , State , Data >::result_type , typename Grammar::proto_child4::template impl< typename result_of::child_c<Expr, 4>::type , State , Data >::result_type
192 >
193 >::type
194 expr_type;
195 typedef typename result_domain::proto_generator proto_generator;
196 typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type result_type;
197 BOOST_FORCEINLINE
198 BOOST_PROTO_RETURN_TYPE_STRICT_LOOSE(result_type, result_type const)
199 operator ()(
200 typename pass_through_impl::expr_param e
201 , typename pass_through_impl::state_param s
202 , typename pass_through_impl::data_param d
203 ) const
204 {
205 expr_type const that = {
206 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >()( e.proto_base().child0, s, d ) , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >()( e.proto_base().child1, s, d ) , typename Grammar::proto_child2::template impl< typename result_of::child_c<Expr, 2>::type , State , Data >()( e.proto_base().child2, s, d ) , typename Grammar::proto_child3::template impl< typename result_of::child_c<Expr, 3>::type , State , Data >()( e.proto_base().child3, s, d ) , typename Grammar::proto_child4::template impl< typename result_of::child_c<Expr, 4>::type , State , Data >()( e.proto_base().child4, s, d )
207 };
208
209
210
211 detail::ignore_unused(&that);
212 return proto_generator()(that);
213 }
214 };
215 template<typename Grammar, typename Domain, typename Expr, typename State, typename Data>
216 struct pass_through_impl<Grammar, Domain, Expr, State, Data, 6>
217 : transform_impl<Expr, State, Data>
218 {
219 typedef typename pass_through_impl::expr unref_expr;
220 typedef
221 typename mpl::if_c<
222 is_same<Domain, deduce_domain>::value
223 , typename unref_expr::proto_domain
224 , Domain
225 >::type
226 result_domain;
227 typedef
228 typename base_expr<
229 result_domain
230 , typename unref_expr::proto_tag
231 , list6<
232 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >::result_type , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >::result_type , typename Grammar::proto_child2::template impl< typename result_of::child_c<Expr, 2>::type , State , Data >::result_type , typename Grammar::proto_child3::template impl< typename result_of::child_c<Expr, 3>::type , State , Data >::result_type , typename Grammar::proto_child4::template impl< typename result_of::child_c<Expr, 4>::type , State , Data >::result_type , typename Grammar::proto_child5::template impl< typename result_of::child_c<Expr, 5>::type , State , Data >::result_type
233 >
234 >::type
235 expr_type;
236 typedef typename result_domain::proto_generator proto_generator;
237 typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type result_type;
238 BOOST_FORCEINLINE
239 BOOST_PROTO_RETURN_TYPE_STRICT_LOOSE(result_type, result_type const)
240 operator ()(
241 typename pass_through_impl::expr_param e
242 , typename pass_through_impl::state_param s
243 , typename pass_through_impl::data_param d
244 ) const
245 {
246 expr_type const that = {
247 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >()( e.proto_base().child0, s, d ) , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >()( e.proto_base().child1, s, d ) , typename Grammar::proto_child2::template impl< typename result_of::child_c<Expr, 2>::type , State , Data >()( e.proto_base().child2, s, d ) , typename Grammar::proto_child3::template impl< typename result_of::child_c<Expr, 3>::type , State , Data >()( e.proto_base().child3, s, d ) , typename Grammar::proto_child4::template impl< typename result_of::child_c<Expr, 4>::type , State , Data >()( e.proto_base().child4, s, d ) , typename Grammar::proto_child5::template impl< typename result_of::child_c<Expr, 5>::type , State , Data >()( e.proto_base().child5, s, d )
248 };
249
250
251
252 detail::ignore_unused(&that);
253 return proto_generator()(that);
254 }
255 };
256 template<typename Grammar, typename Domain, typename Expr, typename State, typename Data>
257 struct pass_through_impl<Grammar, Domain, Expr, State, Data, 7>
258 : transform_impl<Expr, State, Data>
259 {
260 typedef typename pass_through_impl::expr unref_expr;
261 typedef
262 typename mpl::if_c<
263 is_same<Domain, deduce_domain>::value
264 , typename unref_expr::proto_domain
265 , Domain
266 >::type
267 result_domain;
268 typedef
269 typename base_expr<
270 result_domain
271 , typename unref_expr::proto_tag
272 , list7<
273 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >::result_type , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >::result_type , typename Grammar::proto_child2::template impl< typename result_of::child_c<Expr, 2>::type , State , Data >::result_type , typename Grammar::proto_child3::template impl< typename result_of::child_c<Expr, 3>::type , State , Data >::result_type , typename Grammar::proto_child4::template impl< typename result_of::child_c<Expr, 4>::type , State , Data >::result_type , typename Grammar::proto_child5::template impl< typename result_of::child_c<Expr, 5>::type , State , Data >::result_type , typename Grammar::proto_child6::template impl< typename result_of::child_c<Expr, 6>::type , State , Data >::result_type
274 >
275 >::type
276 expr_type;
277 typedef typename result_domain::proto_generator proto_generator;
278 typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type result_type;
279 BOOST_FORCEINLINE
280 BOOST_PROTO_RETURN_TYPE_STRICT_LOOSE(result_type, result_type const)
281 operator ()(
282 typename pass_through_impl::expr_param e
283 , typename pass_through_impl::state_param s
284 , typename pass_through_impl::data_param d
285 ) const
286 {
287 expr_type const that = {
288 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >()( e.proto_base().child0, s, d ) , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >()( e.proto_base().child1, s, d ) , typename Grammar::proto_child2::template impl< typename result_of::child_c<Expr, 2>::type , State , Data >()( e.proto_base().child2, s, d ) , typename Grammar::proto_child3::template impl< typename result_of::child_c<Expr, 3>::type , State , Data >()( e.proto_base().child3, s, d ) , typename Grammar::proto_child4::template impl< typename result_of::child_c<Expr, 4>::type , State , Data >()( e.proto_base().child4, s, d ) , typename Grammar::proto_child5::template impl< typename result_of::child_c<Expr, 5>::type , State , Data >()( e.proto_base().child5, s, d ) , typename Grammar::proto_child6::template impl< typename result_of::child_c<Expr, 6>::type , State , Data >()( e.proto_base().child6, s, d )
289 };
290
291
292
293 detail::ignore_unused(&that);
294 return proto_generator()(that);
295 }
296 };
297 template<typename Grammar, typename Domain, typename Expr, typename State, typename Data>
298 struct pass_through_impl<Grammar, Domain, Expr, State, Data, 8>
299 : transform_impl<Expr, State, Data>
300 {
301 typedef typename pass_through_impl::expr unref_expr;
302 typedef
303 typename mpl::if_c<
304 is_same<Domain, deduce_domain>::value
305 , typename unref_expr::proto_domain
306 , Domain
307 >::type
308 result_domain;
309 typedef
310 typename base_expr<
311 result_domain
312 , typename unref_expr::proto_tag
313 , list8<
314 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >::result_type , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >::result_type , typename Grammar::proto_child2::template impl< typename result_of::child_c<Expr, 2>::type , State , Data >::result_type , typename Grammar::proto_child3::template impl< typename result_of::child_c<Expr, 3>::type , State , Data >::result_type , typename Grammar::proto_child4::template impl< typename result_of::child_c<Expr, 4>::type , State , Data >::result_type , typename Grammar::proto_child5::template impl< typename result_of::child_c<Expr, 5>::type , State , Data >::result_type , typename Grammar::proto_child6::template impl< typename result_of::child_c<Expr, 6>::type , State , Data >::result_type , typename Grammar::proto_child7::template impl< typename result_of::child_c<Expr, 7>::type , State , Data >::result_type
315 >
316 >::type
317 expr_type;
318 typedef typename result_domain::proto_generator proto_generator;
319 typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type result_type;
320 BOOST_FORCEINLINE
321 BOOST_PROTO_RETURN_TYPE_STRICT_LOOSE(result_type, result_type const)
322 operator ()(
323 typename pass_through_impl::expr_param e
324 , typename pass_through_impl::state_param s
325 , typename pass_through_impl::data_param d
326 ) const
327 {
328 expr_type const that = {
329 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >()( e.proto_base().child0, s, d ) , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >()( e.proto_base().child1, s, d ) , typename Grammar::proto_child2::template impl< typename result_of::child_c<Expr, 2>::type , State , Data >()( e.proto_base().child2, s, d ) , typename Grammar::proto_child3::template impl< typename result_of::child_c<Expr, 3>::type , State , Data >()( e.proto_base().child3, s, d ) , typename Grammar::proto_child4::template impl< typename result_of::child_c<Expr, 4>::type , State , Data >()( e.proto_base().child4, s, d ) , typename Grammar::proto_child5::template impl< typename result_of::child_c<Expr, 5>::type , State , Data >()( e.proto_base().child5, s, d ) , typename Grammar::proto_child6::template impl< typename result_of::child_c<Expr, 6>::type , State , Data >()( e.proto_base().child6, s, d ) , typename Grammar::proto_child7::template impl< typename result_of::child_c<Expr, 7>::type , State , Data >()( e.proto_base().child7, s, d )
330 };
331
332
333
334 detail::ignore_unused(&that);
335 return proto_generator()(that);
336 }
337 };
338 template<typename Grammar, typename Domain, typename Expr, typename State, typename Data>
339 struct pass_through_impl<Grammar, Domain, Expr, State, Data, 9>
340 : transform_impl<Expr, State, Data>
341 {
342 typedef typename pass_through_impl::expr unref_expr;
343 typedef
344 typename mpl::if_c<
345 is_same<Domain, deduce_domain>::value
346 , typename unref_expr::proto_domain
347 , Domain
348 >::type
349 result_domain;
350 typedef
351 typename base_expr<
352 result_domain
353 , typename unref_expr::proto_tag
354 , list9<
355 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >::result_type , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >::result_type , typename Grammar::proto_child2::template impl< typename result_of::child_c<Expr, 2>::type , State , Data >::result_type , typename Grammar::proto_child3::template impl< typename result_of::child_c<Expr, 3>::type , State , Data >::result_type , typename Grammar::proto_child4::template impl< typename result_of::child_c<Expr, 4>::type , State , Data >::result_type , typename Grammar::proto_child5::template impl< typename result_of::child_c<Expr, 5>::type , State , Data >::result_type , typename Grammar::proto_child6::template impl< typename result_of::child_c<Expr, 6>::type , State , Data >::result_type , typename Grammar::proto_child7::template impl< typename result_of::child_c<Expr, 7>::type , State , Data >::result_type , typename Grammar::proto_child8::template impl< typename result_of::child_c<Expr, 8>::type , State , Data >::result_type
356 >
357 >::type
358 expr_type;
359 typedef typename result_domain::proto_generator proto_generator;
360 typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type result_type;
361 BOOST_FORCEINLINE
362 BOOST_PROTO_RETURN_TYPE_STRICT_LOOSE(result_type, result_type const)
363 operator ()(
364 typename pass_through_impl::expr_param e
365 , typename pass_through_impl::state_param s
366 , typename pass_through_impl::data_param d
367 ) const
368 {
369 expr_type const that = {
370 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >()( e.proto_base().child0, s, d ) , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >()( e.proto_base().child1, s, d ) , typename Grammar::proto_child2::template impl< typename result_of::child_c<Expr, 2>::type , State , Data >()( e.proto_base().child2, s, d ) , typename Grammar::proto_child3::template impl< typename result_of::child_c<Expr, 3>::type , State , Data >()( e.proto_base().child3, s, d ) , typename Grammar::proto_child4::template impl< typename result_of::child_c<Expr, 4>::type , State , Data >()( e.proto_base().child4, s, d ) , typename Grammar::proto_child5::template impl< typename result_of::child_c<Expr, 5>::type , State , Data >()( e.proto_base().child5, s, d ) , typename Grammar::proto_child6::template impl< typename result_of::child_c<Expr, 6>::type , State , Data >()( e.proto_base().child6, s, d ) , typename Grammar::proto_child7::template impl< typename result_of::child_c<Expr, 7>::type , State , Data >()( e.proto_base().child7, s, d ) , typename Grammar::proto_child8::template impl< typename result_of::child_c<Expr, 8>::type , State , Data >()( e.proto_base().child8, s, d )
371 };
372
373
374
375 detail::ignore_unused(&that);
376 return proto_generator()(that);
377 }
378 };
379 template<typename Grammar, typename Domain, typename Expr, typename State, typename Data>
380 struct pass_through_impl<Grammar, Domain, Expr, State, Data, 10>
381 : transform_impl<Expr, State, Data>
382 {
383 typedef typename pass_through_impl::expr unref_expr;
384 typedef
385 typename mpl::if_c<
386 is_same<Domain, deduce_domain>::value
387 , typename unref_expr::proto_domain
388 , Domain
389 >::type
390 result_domain;
391 typedef
392 typename base_expr<
393 result_domain
394 , typename unref_expr::proto_tag
395 , list10<
396 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >::result_type , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >::result_type , typename Grammar::proto_child2::template impl< typename result_of::child_c<Expr, 2>::type , State , Data >::result_type , typename Grammar::proto_child3::template impl< typename result_of::child_c<Expr, 3>::type , State , Data >::result_type , typename Grammar::proto_child4::template impl< typename result_of::child_c<Expr, 4>::type , State , Data >::result_type , typename Grammar::proto_child5::template impl< typename result_of::child_c<Expr, 5>::type , State , Data >::result_type , typename Grammar::proto_child6::template impl< typename result_of::child_c<Expr, 6>::type , State , Data >::result_type , typename Grammar::proto_child7::template impl< typename result_of::child_c<Expr, 7>::type , State , Data >::result_type , typename Grammar::proto_child8::template impl< typename result_of::child_c<Expr, 8>::type , State , Data >::result_type , typename Grammar::proto_child9::template impl< typename result_of::child_c<Expr, 9>::type , State , Data >::result_type
397 >
398 >::type
399 expr_type;
400 typedef typename result_domain::proto_generator proto_generator;
401 typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type result_type;
402 BOOST_FORCEINLINE
403 BOOST_PROTO_RETURN_TYPE_STRICT_LOOSE(result_type, result_type const)
404 operator ()(
405 typename pass_through_impl::expr_param e
406 , typename pass_through_impl::state_param s
407 , typename pass_through_impl::data_param d
408 ) const
409 {
410 expr_type const that = {
411 typename Grammar::proto_child0::template impl< typename result_of::child_c<Expr, 0>::type , State , Data >()( e.proto_base().child0, s, d ) , typename Grammar::proto_child1::template impl< typename result_of::child_c<Expr, 1>::type , State , Data >()( e.proto_base().child1, s, d ) , typename Grammar::proto_child2::template impl< typename result_of::child_c<Expr, 2>::type , State , Data >()( e.proto_base().child2, s, d ) , typename Grammar::proto_child3::template impl< typename result_of::child_c<Expr, 3>::type , State , Data >()( e.proto_base().child3, s, d ) , typename Grammar::proto_child4::template impl< typename result_of::child_c<Expr, 4>::type , State , Data >()( e.proto_base().child4, s, d ) , typename Grammar::proto_child5::template impl< typename result_of::child_c<Expr, 5>::type , State , Data >()( e.proto_base().child5, s, d ) , typename Grammar::proto_child6::template impl< typename result_of::child_c<Expr, 6>::type , State , Data >()( e.proto_base().child6, s, d ) , typename Grammar::proto_child7::template impl< typename result_of::child_c<Expr, 7>::type , State , Data >()( e.proto_base().child7, s, d ) , typename Grammar::proto_child8::template impl< typename result_of::child_c<Expr, 8>::type , State , Data >()( e.proto_base().child8, s, d ) , typename Grammar::proto_child9::template impl< typename result_of::child_c<Expr, 9>::type , State , Data >()( e.proto_base().child9, s, d )
412 };
413
414
415
416 detail::ignore_unused(&that);
417 return proto_generator()(that);
418 }
419 };