]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | /*============================================================================= |
2 | Copyright (c) 2005-2010 Joel de Guzman | |
3 | Copyright (c) 2010 Eric Niebler | |
4 | Copyright (c) 2010 Thomas Heller | |
5 | ||
6 | Distributed under the Boost Software License, Version 1.0. (See accompanying | |
7 | file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
8 | ==============================================================================*/ | |
9 | template < | |
10 | template <typename> class Actor | |
11 | , typename Tag | |
12 | , typename A0 = void , typename A1 = void , typename A2 = void , typename A3 = void , typename A4 = void , typename A5 = void , typename A6 = void , typename A7 = void , typename A8 = void , typename A9 = void , typename A10 = void , typename A11 = void , typename A12 = void , typename A13 = void , typename A14 = void , typename A15 = void , typename A16 = void , typename A17 = void , typename A18 = void , typename A19 = void | |
13 | , typename Dummy = void> | |
14 | struct expr_ext; | |
15 | template < | |
16 | typename Tag | |
17 | , typename A0 = void , typename A1 = void , typename A2 = void , typename A3 = void , typename A4 = void , typename A5 = void , typename A6 = void , typename A7 = void , typename A8 = void , typename A9 = void , typename A10 = void , typename A11 = void , typename A12 = void , typename A13 = void , typename A14 = void , typename A15 = void , typename A16 = void , typename A17 = void , typename A18 = void , typename A19 = void | |
18 | , typename Dummy = void | |
19 | > | |
20 | struct expr : expr_ext<actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19> {}; | |
21 | ||
22 | ||
23 | ||
24 | ||
25 | ||
26 | ||
27 | ||
28 | template <template <typename> class Actor, typename Tag, typename A0> | |
29 | struct expr_ext<Actor, Tag, A0> | |
30 | : proto::transform<expr_ext<Actor, Tag, A0>, int> | |
31 | { | |
32 | typedef | |
33 | typename proto::result_of::make_expr< | |
34 | Tag | |
35 | , phoenix_default_domain | |
11fdf7f2 | 36 | , typename proto::detail::uncvref<A0>::type |
7c673cae FG |
37 | >::type |
38 | base_type; | |
39 | typedef Actor<base_type> type; | |
40 | typedef | |
41 | typename proto::nary_expr<Tag, A0>::proto_grammar | |
42 | proto_grammar; | |
11fdf7f2 | 43 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0) |
7c673cae FG |
44 | { |
45 | ||
46 | actor<base_type> const e = | |
47 | { | |
48 | proto::make_expr< | |
49 | Tag | |
50 | , phoenix_default_domain | |
51 | >(a0) | |
52 | }; | |
53 | return e; | |
54 | } | |
55 | template<typename Expr, typename State, typename Data> | |
56 | struct impl | |
57 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
58 | {}; | |
59 | typedef Tag proto_tag; | |
60 | typedef A0 proto_child0; | |
61 | }; | |
62 | ||
63 | ||
64 | ||
65 | ||
66 | ||
67 | ||
68 | ||
69 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1> | |
70 | struct expr_ext<Actor, Tag, A0 , A1> | |
71 | : proto::transform<expr_ext<Actor, Tag, A0 , A1>, int> | |
72 | { | |
73 | typedef | |
74 | typename proto::result_of::make_expr< | |
75 | Tag | |
76 | , phoenix_default_domain | |
11fdf7f2 | 77 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type |
7c673cae FG |
78 | >::type |
79 | base_type; | |
80 | typedef Actor<base_type> type; | |
81 | typedef | |
82 | typename proto::nary_expr<Tag, A0 , A1>::proto_grammar | |
83 | proto_grammar; | |
11fdf7f2 | 84 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1) |
7c673cae FG |
85 | { |
86 | ||
87 | actor<base_type> const e = | |
88 | { | |
89 | proto::make_expr< | |
90 | Tag | |
91 | , phoenix_default_domain | |
92 | >(a0 , a1) | |
93 | }; | |
94 | return e; | |
95 | } | |
96 | template<typename Expr, typename State, typename Data> | |
97 | struct impl | |
98 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
99 | {}; | |
100 | typedef Tag proto_tag; | |
101 | typedef A0 proto_child0; typedef A1 proto_child1; | |
102 | }; | |
103 | ||
104 | ||
105 | ||
106 | ||
107 | ||
108 | ||
109 | ||
110 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2> | |
111 | struct expr_ext<Actor, Tag, A0 , A1 , A2> | |
112 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2>, int> | |
113 | { | |
114 | typedef | |
115 | typename proto::result_of::make_expr< | |
116 | Tag | |
117 | , phoenix_default_domain | |
11fdf7f2 | 118 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type |
7c673cae FG |
119 | >::type |
120 | base_type; | |
121 | typedef Actor<base_type> type; | |
122 | typedef | |
123 | typename proto::nary_expr<Tag, A0 , A1 , A2>::proto_grammar | |
124 | proto_grammar; | |
11fdf7f2 | 125 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2) |
7c673cae FG |
126 | { |
127 | ||
128 | actor<base_type> const e = | |
129 | { | |
130 | proto::make_expr< | |
131 | Tag | |
132 | , phoenix_default_domain | |
133 | >(a0 , a1 , a2) | |
134 | }; | |
135 | return e; | |
136 | } | |
137 | template<typename Expr, typename State, typename Data> | |
138 | struct impl | |
139 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
140 | {}; | |
141 | typedef Tag proto_tag; | |
142 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; | |
143 | }; | |
144 | ||
145 | ||
146 | ||
147 | ||
148 | ||
149 | ||
150 | ||
151 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3> | |
152 | struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3> | |
153 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3>, int> | |
154 | { | |
155 | typedef | |
156 | typename proto::result_of::make_expr< | |
157 | Tag | |
158 | , phoenix_default_domain | |
11fdf7f2 | 159 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type |
7c673cae FG |
160 | >::type |
161 | base_type; | |
162 | typedef Actor<base_type> type; | |
163 | typedef | |
164 | typename proto::nary_expr<Tag, A0 , A1 , A2 , A3>::proto_grammar | |
165 | proto_grammar; | |
11fdf7f2 | 166 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3) |
7c673cae FG |
167 | { |
168 | ||
169 | actor<base_type> const e = | |
170 | { | |
171 | proto::make_expr< | |
172 | Tag | |
173 | , phoenix_default_domain | |
174 | >(a0 , a1 , a2 , a3) | |
175 | }; | |
176 | return e; | |
177 | } | |
178 | template<typename Expr, typename State, typename Data> | |
179 | struct impl | |
180 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
181 | {}; | |
182 | typedef Tag proto_tag; | |
183 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; | |
184 | }; | |
185 | ||
186 | ||
187 | ||
188 | ||
189 | ||
190 | ||
191 | ||
192 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4> | |
193 | struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4> | |
194 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4>, int> | |
195 | { | |
196 | typedef | |
197 | typename proto::result_of::make_expr< | |
198 | Tag | |
199 | , phoenix_default_domain | |
11fdf7f2 | 200 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type |
7c673cae FG |
201 | >::type |
202 | base_type; | |
203 | typedef Actor<base_type> type; | |
204 | typedef | |
205 | typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4>::proto_grammar | |
206 | proto_grammar; | |
11fdf7f2 | 207 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4) |
7c673cae FG |
208 | { |
209 | ||
210 | actor<base_type> const e = | |
211 | { | |
212 | proto::make_expr< | |
213 | Tag | |
214 | , phoenix_default_domain | |
215 | >(a0 , a1 , a2 , a3 , a4) | |
216 | }; | |
217 | return e; | |
218 | } | |
219 | template<typename Expr, typename State, typename Data> | |
220 | struct impl | |
221 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
222 | {}; | |
223 | typedef Tag proto_tag; | |
224 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; | |
225 | }; | |
226 | ||
227 | ||
228 | ||
229 | ||
230 | ||
231 | ||
232 | ||
233 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5> | |
234 | struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5> | |
235 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5>, int> | |
236 | { | |
237 | typedef | |
238 | typename proto::result_of::make_expr< | |
239 | Tag | |
240 | , phoenix_default_domain | |
11fdf7f2 | 241 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type |
7c673cae FG |
242 | >::type |
243 | base_type; | |
244 | typedef Actor<base_type> type; | |
245 | typedef | |
246 | typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5>::proto_grammar | |
247 | proto_grammar; | |
11fdf7f2 | 248 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5) |
7c673cae FG |
249 | { |
250 | ||
251 | actor<base_type> const e = | |
252 | { | |
253 | proto::make_expr< | |
254 | Tag | |
255 | , phoenix_default_domain | |
256 | >(a0 , a1 , a2 , a3 , a4 , a5) | |
257 | }; | |
258 | return e; | |
259 | } | |
260 | template<typename Expr, typename State, typename Data> | |
261 | struct impl | |
262 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
263 | {}; | |
264 | typedef Tag proto_tag; | |
265 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; | |
266 | }; | |
267 | ||
268 | ||
269 | ||
270 | ||
271 | ||
272 | ||
273 | ||
274 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6> | |
275 | struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6> | |
276 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>, int> | |
277 | { | |
278 | typedef | |
279 | typename proto::result_of::make_expr< | |
280 | Tag | |
281 | , phoenix_default_domain | |
11fdf7f2 | 282 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type |
7c673cae FG |
283 | >::type |
284 | base_type; | |
285 | typedef Actor<base_type> type; | |
286 | typedef | |
287 | typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6>::proto_grammar | |
288 | proto_grammar; | |
11fdf7f2 | 289 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6) |
7c673cae FG |
290 | { |
291 | ||
292 | actor<base_type> const e = | |
293 | { | |
294 | proto::make_expr< | |
295 | Tag | |
296 | , phoenix_default_domain | |
297 | >(a0 , a1 , a2 , a3 , a4 , a5 , a6) | |
298 | }; | |
299 | return e; | |
300 | } | |
301 | template<typename Expr, typename State, typename Data> | |
302 | struct impl | |
303 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
304 | {}; | |
305 | typedef Tag proto_tag; | |
306 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; | |
307 | }; | |
308 | ||
309 | ||
310 | ||
311 | ||
312 | ||
313 | ||
314 | ||
315 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7> | |
316 | struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7> | |
317 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>, int> | |
318 | { | |
319 | typedef | |
320 | typename proto::result_of::make_expr< | |
321 | Tag | |
322 | , phoenix_default_domain | |
11fdf7f2 | 323 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type |
7c673cae FG |
324 | >::type |
325 | base_type; | |
326 | typedef Actor<base_type> type; | |
327 | typedef | |
328 | typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::proto_grammar | |
329 | proto_grammar; | |
11fdf7f2 | 330 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7) |
7c673cae FG |
331 | { |
332 | ||
333 | actor<base_type> const e = | |
334 | { | |
335 | proto::make_expr< | |
336 | Tag | |
337 | , phoenix_default_domain | |
338 | >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7) | |
339 | }; | |
340 | return e; | |
341 | } | |
342 | template<typename Expr, typename State, typename Data> | |
343 | struct impl | |
344 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
345 | {}; | |
346 | typedef Tag proto_tag; | |
347 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; | |
348 | }; | |
349 | ||
350 | ||
351 | ||
352 | ||
353 | ||
354 | ||
355 | ||
356 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8> | |
357 | struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8> | |
358 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>, int> | |
359 | { | |
360 | typedef | |
361 | typename proto::result_of::make_expr< | |
362 | Tag | |
363 | , phoenix_default_domain | |
11fdf7f2 | 364 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type , typename proto::detail::uncvref<A8>::type |
7c673cae FG |
365 | >::type |
366 | base_type; | |
367 | typedef Actor<base_type> type; | |
368 | typedef | |
369 | typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::proto_grammar | |
370 | proto_grammar; | |
11fdf7f2 | 371 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7 , typename boost::add_reference<typename boost::add_const<A8>::type>::type a8) |
7c673cae FG |
372 | { |
373 | ||
374 | actor<base_type> const e = | |
375 | { | |
376 | proto::make_expr< | |
377 | Tag | |
378 | , phoenix_default_domain | |
379 | >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8) | |
380 | }; | |
381 | return e; | |
382 | } | |
383 | template<typename Expr, typename State, typename Data> | |
384 | struct impl | |
385 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
386 | {}; | |
387 | typedef Tag proto_tag; | |
388 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; | |
389 | }; | |
390 | ||
391 | ||
392 | ||
393 | ||
394 | ||
395 | ||
396 | ||
397 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9> | |
398 | struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> | |
399 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>, int> | |
400 | { | |
401 | typedef | |
402 | typename proto::result_of::make_expr< | |
403 | Tag | |
404 | , phoenix_default_domain | |
11fdf7f2 | 405 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type , typename proto::detail::uncvref<A8>::type , typename proto::detail::uncvref<A9>::type |
7c673cae FG |
406 | >::type |
407 | base_type; | |
408 | typedef Actor<base_type> type; | |
409 | typedef | |
410 | typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::proto_grammar | |
411 | proto_grammar; | |
11fdf7f2 | 412 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7 , typename boost::add_reference<typename boost::add_const<A8>::type>::type a8 , typename boost::add_reference<typename boost::add_const<A9>::type>::type a9) |
7c673cae FG |
413 | { |
414 | ||
415 | actor<base_type> const e = | |
416 | { | |
417 | proto::make_expr< | |
418 | Tag | |
419 | , phoenix_default_domain | |
420 | >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9) | |
421 | }; | |
422 | return e; | |
423 | } | |
424 | template<typename Expr, typename State, typename Data> | |
425 | struct impl | |
426 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
427 | {}; | |
428 | typedef Tag proto_tag; | |
429 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; | |
430 | }; | |
431 | ||
432 | ||
433 | ||
434 | ||
435 | ||
436 | ||
437 | ||
438 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10> | |
439 | struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10> | |
440 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>, int> | |
441 | { | |
442 | typedef | |
443 | typename proto::result_of::make_expr< | |
444 | Tag | |
445 | , phoenix_default_domain | |
11fdf7f2 | 446 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type , typename proto::detail::uncvref<A8>::type , typename proto::detail::uncvref<A9>::type , typename proto::detail::uncvref<A10>::type |
7c673cae FG |
447 | >::type |
448 | base_type; | |
449 | typedef Actor<base_type> type; | |
450 | typedef | |
451 | typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>::proto_grammar | |
452 | proto_grammar; | |
11fdf7f2 | 453 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7 , typename boost::add_reference<typename boost::add_const<A8>::type>::type a8 , typename boost::add_reference<typename boost::add_const<A9>::type>::type a9 , typename boost::add_reference<typename boost::add_const<A10>::type>::type a10) |
7c673cae FG |
454 | { |
455 | ||
456 | actor<base_type> const e = | |
457 | { | |
458 | proto::make_expr< | |
459 | Tag | |
460 | , phoenix_default_domain | |
461 | >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10) | |
462 | }; | |
463 | return e; | |
464 | } | |
465 | template<typename Expr, typename State, typename Data> | |
466 | struct impl | |
467 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
468 | {}; | |
469 | typedef Tag proto_tag; | |
470 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; | |
471 | }; | |
472 | ||
473 | ||
474 | ||
475 | ||
476 | ||
477 | ||
478 | ||
479 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11> | |
480 | struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11> | |
481 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>, int> | |
482 | { | |
483 | typedef | |
484 | typename proto::result_of::make_expr< | |
485 | Tag | |
486 | , phoenix_default_domain | |
11fdf7f2 | 487 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type , typename proto::detail::uncvref<A8>::type , typename proto::detail::uncvref<A9>::type , typename proto::detail::uncvref<A10>::type , typename proto::detail::uncvref<A11>::type |
7c673cae FG |
488 | >::type |
489 | base_type; | |
490 | typedef Actor<base_type> type; | |
491 | typedef | |
492 | typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>::proto_grammar | |
493 | proto_grammar; | |
11fdf7f2 | 494 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7 , typename boost::add_reference<typename boost::add_const<A8>::type>::type a8 , typename boost::add_reference<typename boost::add_const<A9>::type>::type a9 , typename boost::add_reference<typename boost::add_const<A10>::type>::type a10 , typename boost::add_reference<typename boost::add_const<A11>::type>::type a11) |
7c673cae FG |
495 | { |
496 | ||
497 | actor<base_type> const e = | |
498 | { | |
499 | proto::make_expr< | |
500 | Tag | |
501 | , phoenix_default_domain | |
502 | >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11) | |
503 | }; | |
504 | return e; | |
505 | } | |
506 | template<typename Expr, typename State, typename Data> | |
507 | struct impl | |
508 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
509 | {}; | |
510 | typedef Tag proto_tag; | |
511 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; | |
512 | }; | |
513 | ||
514 | ||
515 | ||
516 | ||
517 | ||
518 | ||
519 | ||
520 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12> | |
521 | struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12> | |
522 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>, int> | |
523 | { | |
524 | typedef | |
525 | typename proto::result_of::make_expr< | |
526 | Tag | |
527 | , phoenix_default_domain | |
11fdf7f2 | 528 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type , typename proto::detail::uncvref<A8>::type , typename proto::detail::uncvref<A9>::type , typename proto::detail::uncvref<A10>::type , typename proto::detail::uncvref<A11>::type , typename proto::detail::uncvref<A12>::type |
7c673cae FG |
529 | >::type |
530 | base_type; | |
531 | typedef Actor<base_type> type; | |
532 | typedef | |
533 | typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>::proto_grammar | |
534 | proto_grammar; | |
11fdf7f2 | 535 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7 , typename boost::add_reference<typename boost::add_const<A8>::type>::type a8 , typename boost::add_reference<typename boost::add_const<A9>::type>::type a9 , typename boost::add_reference<typename boost::add_const<A10>::type>::type a10 , typename boost::add_reference<typename boost::add_const<A11>::type>::type a11 , typename boost::add_reference<typename boost::add_const<A12>::type>::type a12) |
7c673cae FG |
536 | { |
537 | ||
538 | actor<base_type> const e = | |
539 | { | |
540 | proto::make_expr< | |
541 | Tag | |
542 | , phoenix_default_domain | |
543 | >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12) | |
544 | }; | |
545 | return e; | |
546 | } | |
547 | template<typename Expr, typename State, typename Data> | |
548 | struct impl | |
549 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
550 | {}; | |
551 | typedef Tag proto_tag; | |
552 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; | |
553 | }; | |
554 | ||
555 | ||
556 | ||
557 | ||
558 | ||
559 | ||
560 | ||
561 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13> | |
562 | struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13> | |
563 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>, int> | |
564 | { | |
565 | typedef | |
566 | typename proto::result_of::make_expr< | |
567 | Tag | |
568 | , phoenix_default_domain | |
11fdf7f2 | 569 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type , typename proto::detail::uncvref<A8>::type , typename proto::detail::uncvref<A9>::type , typename proto::detail::uncvref<A10>::type , typename proto::detail::uncvref<A11>::type , typename proto::detail::uncvref<A12>::type , typename proto::detail::uncvref<A13>::type |
7c673cae FG |
570 | >::type |
571 | base_type; | |
572 | typedef Actor<base_type> type; | |
573 | typedef | |
574 | typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>::proto_grammar | |
575 | proto_grammar; | |
11fdf7f2 | 576 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7 , typename boost::add_reference<typename boost::add_const<A8>::type>::type a8 , typename boost::add_reference<typename boost::add_const<A9>::type>::type a9 , typename boost::add_reference<typename boost::add_const<A10>::type>::type a10 , typename boost::add_reference<typename boost::add_const<A11>::type>::type a11 , typename boost::add_reference<typename boost::add_const<A12>::type>::type a12 , typename boost::add_reference<typename boost::add_const<A13>::type>::type a13) |
7c673cae FG |
577 | { |
578 | ||
579 | actor<base_type> const e = | |
580 | { | |
581 | proto::make_expr< | |
582 | Tag | |
583 | , phoenix_default_domain | |
584 | >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13) | |
585 | }; | |
586 | return e; | |
587 | } | |
588 | template<typename Expr, typename State, typename Data> | |
589 | struct impl | |
590 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
591 | {}; | |
592 | typedef Tag proto_tag; | |
593 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; | |
594 | }; | |
595 | ||
596 | ||
597 | ||
598 | ||
599 | ||
600 | ||
601 | ||
602 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14> | |
603 | struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14> | |
604 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>, int> | |
605 | { | |
606 | typedef | |
607 | typename proto::result_of::make_expr< | |
608 | Tag | |
609 | , phoenix_default_domain | |
11fdf7f2 | 610 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type , typename proto::detail::uncvref<A8>::type , typename proto::detail::uncvref<A9>::type , typename proto::detail::uncvref<A10>::type , typename proto::detail::uncvref<A11>::type , typename proto::detail::uncvref<A12>::type , typename proto::detail::uncvref<A13>::type , typename proto::detail::uncvref<A14>::type |
7c673cae FG |
611 | >::type |
612 | base_type; | |
613 | typedef Actor<base_type> type; | |
614 | typedef | |
615 | typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>::proto_grammar | |
616 | proto_grammar; | |
11fdf7f2 | 617 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7 , typename boost::add_reference<typename boost::add_const<A8>::type>::type a8 , typename boost::add_reference<typename boost::add_const<A9>::type>::type a9 , typename boost::add_reference<typename boost::add_const<A10>::type>::type a10 , typename boost::add_reference<typename boost::add_const<A11>::type>::type a11 , typename boost::add_reference<typename boost::add_const<A12>::type>::type a12 , typename boost::add_reference<typename boost::add_const<A13>::type>::type a13 , typename boost::add_reference<typename boost::add_const<A14>::type>::type a14) |
7c673cae FG |
618 | { |
619 | ||
620 | actor<base_type> const e = | |
621 | { | |
622 | proto::make_expr< | |
623 | Tag | |
624 | , phoenix_default_domain | |
625 | >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14) | |
626 | }; | |
627 | return e; | |
628 | } | |
629 | template<typename Expr, typename State, typename Data> | |
630 | struct impl | |
631 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
632 | {}; | |
633 | typedef Tag proto_tag; | |
634 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; | |
635 | }; | |
636 | ||
637 | ||
638 | ||
639 | ||
640 | ||
641 | ||
642 | ||
643 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15> | |
644 | struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15> | |
645 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>, int> | |
646 | { | |
647 | typedef | |
648 | typename proto::result_of::make_expr< | |
649 | Tag | |
650 | , phoenix_default_domain | |
11fdf7f2 | 651 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type , typename proto::detail::uncvref<A8>::type , typename proto::detail::uncvref<A9>::type , typename proto::detail::uncvref<A10>::type , typename proto::detail::uncvref<A11>::type , typename proto::detail::uncvref<A12>::type , typename proto::detail::uncvref<A13>::type , typename proto::detail::uncvref<A14>::type , typename proto::detail::uncvref<A15>::type |
7c673cae FG |
652 | >::type |
653 | base_type; | |
654 | typedef Actor<base_type> type; | |
655 | typedef | |
656 | typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>::proto_grammar | |
657 | proto_grammar; | |
11fdf7f2 | 658 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7 , typename boost::add_reference<typename boost::add_const<A8>::type>::type a8 , typename boost::add_reference<typename boost::add_const<A9>::type>::type a9 , typename boost::add_reference<typename boost::add_const<A10>::type>::type a10 , typename boost::add_reference<typename boost::add_const<A11>::type>::type a11 , typename boost::add_reference<typename boost::add_const<A12>::type>::type a12 , typename boost::add_reference<typename boost::add_const<A13>::type>::type a13 , typename boost::add_reference<typename boost::add_const<A14>::type>::type a14 , typename boost::add_reference<typename boost::add_const<A15>::type>::type a15) |
7c673cae FG |
659 | { |
660 | ||
661 | actor<base_type> const e = | |
662 | { | |
663 | proto::make_expr< | |
664 | Tag | |
665 | , phoenix_default_domain | |
666 | >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15) | |
667 | }; | |
668 | return e; | |
669 | } | |
670 | template<typename Expr, typename State, typename Data> | |
671 | struct impl | |
672 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
673 | {}; | |
674 | typedef Tag proto_tag; | |
675 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; | |
676 | }; | |
677 | ||
678 | ||
679 | ||
680 | ||
681 | ||
682 | ||
683 | ||
684 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16> | |
685 | struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16> | |
686 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>, int> | |
687 | { | |
688 | typedef | |
689 | typename proto::result_of::make_expr< | |
690 | Tag | |
691 | , phoenix_default_domain | |
11fdf7f2 | 692 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type , typename proto::detail::uncvref<A8>::type , typename proto::detail::uncvref<A9>::type , typename proto::detail::uncvref<A10>::type , typename proto::detail::uncvref<A11>::type , typename proto::detail::uncvref<A12>::type , typename proto::detail::uncvref<A13>::type , typename proto::detail::uncvref<A14>::type , typename proto::detail::uncvref<A15>::type , typename proto::detail::uncvref<A16>::type |
7c673cae FG |
693 | >::type |
694 | base_type; | |
695 | typedef Actor<base_type> type; | |
696 | typedef | |
697 | typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>::proto_grammar | |
698 | proto_grammar; | |
11fdf7f2 | 699 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7 , typename boost::add_reference<typename boost::add_const<A8>::type>::type a8 , typename boost::add_reference<typename boost::add_const<A9>::type>::type a9 , typename boost::add_reference<typename boost::add_const<A10>::type>::type a10 , typename boost::add_reference<typename boost::add_const<A11>::type>::type a11 , typename boost::add_reference<typename boost::add_const<A12>::type>::type a12 , typename boost::add_reference<typename boost::add_const<A13>::type>::type a13 , typename boost::add_reference<typename boost::add_const<A14>::type>::type a14 , typename boost::add_reference<typename boost::add_const<A15>::type>::type a15 , typename boost::add_reference<typename boost::add_const<A16>::type>::type a16) |
7c673cae FG |
700 | { |
701 | ||
702 | actor<base_type> const e = | |
703 | { | |
704 | proto::make_expr< | |
705 | Tag | |
706 | , phoenix_default_domain | |
707 | >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16) | |
708 | }; | |
709 | return e; | |
710 | } | |
711 | template<typename Expr, typename State, typename Data> | |
712 | struct impl | |
713 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
714 | {}; | |
715 | typedef Tag proto_tag; | |
716 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; | |
717 | }; | |
718 | ||
719 | ||
720 | ||
721 | ||
722 | ||
723 | ||
724 | ||
725 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17> | |
726 | struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17> | |
727 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>, int> | |
728 | { | |
729 | typedef | |
730 | typename proto::result_of::make_expr< | |
731 | Tag | |
732 | , phoenix_default_domain | |
11fdf7f2 | 733 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type , typename proto::detail::uncvref<A8>::type , typename proto::detail::uncvref<A9>::type , typename proto::detail::uncvref<A10>::type , typename proto::detail::uncvref<A11>::type , typename proto::detail::uncvref<A12>::type , typename proto::detail::uncvref<A13>::type , typename proto::detail::uncvref<A14>::type , typename proto::detail::uncvref<A15>::type , typename proto::detail::uncvref<A16>::type , typename proto::detail::uncvref<A17>::type |
7c673cae FG |
734 | >::type |
735 | base_type; | |
736 | typedef Actor<base_type> type; | |
737 | typedef | |
738 | typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>::proto_grammar | |
739 | proto_grammar; | |
11fdf7f2 | 740 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7 , typename boost::add_reference<typename boost::add_const<A8>::type>::type a8 , typename boost::add_reference<typename boost::add_const<A9>::type>::type a9 , typename boost::add_reference<typename boost::add_const<A10>::type>::type a10 , typename boost::add_reference<typename boost::add_const<A11>::type>::type a11 , typename boost::add_reference<typename boost::add_const<A12>::type>::type a12 , typename boost::add_reference<typename boost::add_const<A13>::type>::type a13 , typename boost::add_reference<typename boost::add_const<A14>::type>::type a14 , typename boost::add_reference<typename boost::add_const<A15>::type>::type a15 , typename boost::add_reference<typename boost::add_const<A16>::type>::type a16 , typename boost::add_reference<typename boost::add_const<A17>::type>::type a17) |
7c673cae FG |
741 | { |
742 | ||
743 | actor<base_type> const e = | |
744 | { | |
745 | proto::make_expr< | |
746 | Tag | |
747 | , phoenix_default_domain | |
748 | >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17) | |
749 | }; | |
750 | return e; | |
751 | } | |
752 | template<typename Expr, typename State, typename Data> | |
753 | struct impl | |
754 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
755 | {}; | |
756 | typedef Tag proto_tag; | |
757 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; | |
758 | }; | |
759 | ||
760 | ||
761 | ||
762 | ||
763 | ||
764 | ||
765 | ||
766 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18> | |
767 | struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18> | |
768 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>, int> | |
769 | { | |
770 | typedef | |
771 | typename proto::result_of::make_expr< | |
772 | Tag | |
773 | , phoenix_default_domain | |
11fdf7f2 | 774 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type , typename proto::detail::uncvref<A8>::type , typename proto::detail::uncvref<A9>::type , typename proto::detail::uncvref<A10>::type , typename proto::detail::uncvref<A11>::type , typename proto::detail::uncvref<A12>::type , typename proto::detail::uncvref<A13>::type , typename proto::detail::uncvref<A14>::type , typename proto::detail::uncvref<A15>::type , typename proto::detail::uncvref<A16>::type , typename proto::detail::uncvref<A17>::type , typename proto::detail::uncvref<A18>::type |
7c673cae FG |
775 | >::type |
776 | base_type; | |
777 | typedef Actor<base_type> type; | |
778 | typedef | |
779 | typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>::proto_grammar | |
780 | proto_grammar; | |
11fdf7f2 | 781 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7 , typename boost::add_reference<typename boost::add_const<A8>::type>::type a8 , typename boost::add_reference<typename boost::add_const<A9>::type>::type a9 , typename boost::add_reference<typename boost::add_const<A10>::type>::type a10 , typename boost::add_reference<typename boost::add_const<A11>::type>::type a11 , typename boost::add_reference<typename boost::add_const<A12>::type>::type a12 , typename boost::add_reference<typename boost::add_const<A13>::type>::type a13 , typename boost::add_reference<typename boost::add_const<A14>::type>::type a14 , typename boost::add_reference<typename boost::add_const<A15>::type>::type a15 , typename boost::add_reference<typename boost::add_const<A16>::type>::type a16 , typename boost::add_reference<typename boost::add_const<A17>::type>::type a17 , typename boost::add_reference<typename boost::add_const<A18>::type>::type a18) |
7c673cae FG |
782 | { |
783 | ||
784 | actor<base_type> const e = | |
785 | { | |
786 | proto::make_expr< | |
787 | Tag | |
788 | , phoenix_default_domain | |
789 | >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18) | |
790 | }; | |
791 | return e; | |
792 | } | |
793 | template<typename Expr, typename State, typename Data> | |
794 | struct impl | |
795 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
796 | {}; | |
797 | typedef Tag proto_tag; | |
798 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; | |
799 | }; | |
800 | ||
801 | ||
802 | ||
803 | ||
804 | ||
805 | ||
806 | ||
807 | template <template <typename> class Actor, typename Tag, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19> | |
808 | struct expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19> | |
809 | : proto::transform<expr_ext<Actor, Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>, int> | |
810 | { | |
811 | typedef | |
812 | typename proto::result_of::make_expr< | |
813 | Tag | |
814 | , phoenix_default_domain | |
11fdf7f2 | 815 | , typename proto::detail::uncvref<A0>::type , typename proto::detail::uncvref<A1>::type , typename proto::detail::uncvref<A2>::type , typename proto::detail::uncvref<A3>::type , typename proto::detail::uncvref<A4>::type , typename proto::detail::uncvref<A5>::type , typename proto::detail::uncvref<A6>::type , typename proto::detail::uncvref<A7>::type , typename proto::detail::uncvref<A8>::type , typename proto::detail::uncvref<A9>::type , typename proto::detail::uncvref<A10>::type , typename proto::detail::uncvref<A11>::type , typename proto::detail::uncvref<A12>::type , typename proto::detail::uncvref<A13>::type , typename proto::detail::uncvref<A14>::type , typename proto::detail::uncvref<A15>::type , typename proto::detail::uncvref<A16>::type , typename proto::detail::uncvref<A17>::type , typename proto::detail::uncvref<A18>::type , typename proto::detail::uncvref<A19>::type |
7c673cae FG |
816 | >::type |
817 | base_type; | |
818 | typedef Actor<base_type> type; | |
819 | typedef | |
820 | typename proto::nary_expr<Tag, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>::proto_grammar | |
821 | proto_grammar; | |
11fdf7f2 | 822 | static type make(typename boost::add_reference<typename boost::add_const<A0>::type>::type a0 , typename boost::add_reference<typename boost::add_const<A1>::type>::type a1 , typename boost::add_reference<typename boost::add_const<A2>::type>::type a2 , typename boost::add_reference<typename boost::add_const<A3>::type>::type a3 , typename boost::add_reference<typename boost::add_const<A4>::type>::type a4 , typename boost::add_reference<typename boost::add_const<A5>::type>::type a5 , typename boost::add_reference<typename boost::add_const<A6>::type>::type a6 , typename boost::add_reference<typename boost::add_const<A7>::type>::type a7 , typename boost::add_reference<typename boost::add_const<A8>::type>::type a8 , typename boost::add_reference<typename boost::add_const<A9>::type>::type a9 , typename boost::add_reference<typename boost::add_const<A10>::type>::type a10 , typename boost::add_reference<typename boost::add_const<A11>::type>::type a11 , typename boost::add_reference<typename boost::add_const<A12>::type>::type a12 , typename boost::add_reference<typename boost::add_const<A13>::type>::type a13 , typename boost::add_reference<typename boost::add_const<A14>::type>::type a14 , typename boost::add_reference<typename boost::add_const<A15>::type>::type a15 , typename boost::add_reference<typename boost::add_const<A16>::type>::type a16 , typename boost::add_reference<typename boost::add_const<A17>::type>::type a17 , typename boost::add_reference<typename boost::add_const<A18>::type>::type a18 , typename boost::add_reference<typename boost::add_const<A19>::type>::type a19) |
7c673cae FG |
823 | { |
824 | ||
825 | actor<base_type> const e = | |
826 | { | |
827 | proto::make_expr< | |
828 | Tag | |
829 | , phoenix_default_domain | |
830 | >(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19) | |
831 | }; | |
832 | return e; | |
833 | } | |
834 | template<typename Expr, typename State, typename Data> | |
835 | struct impl | |
836 | : proto::pass_through<expr_ext>::template impl<Expr, State, Data> | |
837 | {}; | |
838 | typedef Tag proto_tag; | |
839 | typedef A0 proto_child0; typedef A1 proto_child1; typedef A2 proto_child2; typedef A3 proto_child3; typedef A4 proto_child4; typedef A5 proto_child5; typedef A6 proto_child6; typedef A7 proto_child7; typedef A8 proto_child8; typedef A9 proto_child9; typedef A10 proto_child10; typedef A11 proto_child11; typedef A12 proto_child12; typedef A13 proto_child13; typedef A14 proto_child14; typedef A15 proto_child15; typedef A16 proto_child16; typedef A17 proto_child17; typedef A18 proto_child18; typedef A19 proto_child19; | |
840 | }; |