1 /*==============================================================================
2     Copyright (c) 2005-2010 Joel de Guzman
3     Copyright (c) 2010 Thomas Heller
4 
5     Distributed under the Boost Software License, Version 1.0. (See accompanying
6     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 ==============================================================================*/
8 
9 
10 
11 
12 
13 
14 
15         template <typename TryCatch, typename Exception, typename Expr>
16         struct catch_push_back<TryCatch, Exception, Expr, 2>
17         {
18             typedef
19                 typename proto::result_of::make_expr<
20                     phoenix::tag::catch_
21                   , proto::basic_default_domain
22                   , catch_exception<Exception>
23                   , Expr
24                 >::type
25                 catch_expr;
26             typedef phoenix::expression::try_catch<
27                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type
28               , catch_expr> gen_type;
29             typedef typename gen_type::type type;
30             static type
makecatch_push_back31             make(
32                 TryCatch const& try_catch
33               , Expr const& catch_
34             )
35             {
36                 return
37                     gen_type::make(
38                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch)
39                       , proto::make_expr<
40                             phoenix::tag::catch_
41                           , proto::basic_default_domain
42                         >(catch_exception<Exception>(), catch_)
43                     );
44             }
45         };
46 
47         template <typename TryCatch, typename Expr>
48         struct catch_all_push_back<TryCatch, Expr, 2>
49         {
50             typedef
51                 typename proto::result_of::make_expr<
52                     phoenix::tag::catch_all
53                   , proto::basic_default_domain
54                   , Expr
55                 >::type
56                 catch_expr;
57             typedef phoenix::expression::try_catch<
58                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type
59               , catch_expr> gen_type;
60             typedef typename gen_type::type type;
61             static type
makecatch_all_push_back62             make(
63                 TryCatch const& try_catch
64               , Expr const& catch_
65             )
66             {
67                 return
68                     gen_type::make(
69                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch)
70                       , proto::make_expr<
71                             phoenix::tag::catch_all
72                           , proto::basic_default_domain
73                         >(catch_)
74                     );
75             }
76         };
77 
78 
79 
80 
81 
82 
83 
84         template <typename TryCatch, typename Exception, typename Expr>
85         struct catch_push_back<TryCatch, Exception, Expr, 3>
86         {
87             typedef
88                 typename proto::result_of::make_expr<
89                     phoenix::tag::catch_
90                   , proto::basic_default_domain
91                   , catch_exception<Exception>
92                   , Expr
93                 >::type
94                 catch_expr;
95             typedef phoenix::expression::try_catch<
96                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type
97               , catch_expr> gen_type;
98             typedef typename gen_type::type type;
99             static type
makecatch_push_back100             make(
101                 TryCatch const& try_catch
102               , Expr const& catch_
103             )
104             {
105                 return
106                     gen_type::make(
107                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch)
108                       , proto::make_expr<
109                             phoenix::tag::catch_
110                           , proto::basic_default_domain
111                         >(catch_exception<Exception>(), catch_)
112                     );
113             }
114         };
115 
116         template <typename TryCatch, typename Expr>
117         struct catch_all_push_back<TryCatch, Expr, 3>
118         {
119             typedef
120                 typename proto::result_of::make_expr<
121                     phoenix::tag::catch_all
122                   , proto::basic_default_domain
123                   , Expr
124                 >::type
125                 catch_expr;
126             typedef phoenix::expression::try_catch<
127                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type
128               , catch_expr> gen_type;
129             typedef typename gen_type::type type;
130             static type
makecatch_all_push_back131             make(
132                 TryCatch const& try_catch
133               , Expr const& catch_
134             )
135             {
136                 return
137                     gen_type::make(
138                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch)
139                       , proto::make_expr<
140                             phoenix::tag::catch_all
141                           , proto::basic_default_domain
142                         >(catch_)
143                     );
144             }
145         };
146 
147 
148 
149 
150 
151 
152 
153         template <typename TryCatch, typename Exception, typename Expr>
154         struct catch_push_back<TryCatch, Exception, Expr, 4>
155         {
156             typedef
157                 typename proto::result_of::make_expr<
158                     phoenix::tag::catch_
159                   , proto::basic_default_domain
160                   , catch_exception<Exception>
161                   , Expr
162                 >::type
163                 catch_expr;
164             typedef phoenix::expression::try_catch<
165                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type
166               , catch_expr> gen_type;
167             typedef typename gen_type::type type;
168             static type
makecatch_push_back169             make(
170                 TryCatch const& try_catch
171               , Expr const& catch_
172             )
173             {
174                 return
175                     gen_type::make(
176                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch)
177                       , proto::make_expr<
178                             phoenix::tag::catch_
179                           , proto::basic_default_domain
180                         >(catch_exception<Exception>(), catch_)
181                     );
182             }
183         };
184 
185         template <typename TryCatch, typename Expr>
186         struct catch_all_push_back<TryCatch, Expr, 4>
187         {
188             typedef
189                 typename proto::result_of::make_expr<
190                     phoenix::tag::catch_all
191                   , proto::basic_default_domain
192                   , Expr
193                 >::type
194                 catch_expr;
195             typedef phoenix::expression::try_catch<
196                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type
197               , catch_expr> gen_type;
198             typedef typename gen_type::type type;
199             static type
makecatch_all_push_back200             make(
201                 TryCatch const& try_catch
202               , Expr const& catch_
203             )
204             {
205                 return
206                     gen_type::make(
207                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch)
208                       , proto::make_expr<
209                             phoenix::tag::catch_all
210                           , proto::basic_default_domain
211                         >(catch_)
212                     );
213             }
214         };
215 
216 
217 
218 
219 
220 
221 
222         template <typename TryCatch, typename Exception, typename Expr>
223         struct catch_push_back<TryCatch, Exception, Expr, 5>
224         {
225             typedef
226                 typename proto::result_of::make_expr<
227                     phoenix::tag::catch_
228                   , proto::basic_default_domain
229                   , catch_exception<Exception>
230                   , Expr
231                 >::type
232                 catch_expr;
233             typedef phoenix::expression::try_catch<
234                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type
235               , catch_expr> gen_type;
236             typedef typename gen_type::type type;
237             static type
makecatch_push_back238             make(
239                 TryCatch const& try_catch
240               , Expr const& catch_
241             )
242             {
243                 return
244                     gen_type::make(
245                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch)
246                       , proto::make_expr<
247                             phoenix::tag::catch_
248                           , proto::basic_default_domain
249                         >(catch_exception<Exception>(), catch_)
250                     );
251             }
252         };
253 
254         template <typename TryCatch, typename Expr>
255         struct catch_all_push_back<TryCatch, Expr, 5>
256         {
257             typedef
258                 typename proto::result_of::make_expr<
259                     phoenix::tag::catch_all
260                   , proto::basic_default_domain
261                   , Expr
262                 >::type
263                 catch_expr;
264             typedef phoenix::expression::try_catch<
265                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type
266               , catch_expr> gen_type;
267             typedef typename gen_type::type type;
268             static type
makecatch_all_push_back269             make(
270                 TryCatch const& try_catch
271               , Expr const& catch_
272             )
273             {
274                 return
275                     gen_type::make(
276                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch)
277                       , proto::make_expr<
278                             phoenix::tag::catch_all
279                           , proto::basic_default_domain
280                         >(catch_)
281                     );
282             }
283         };
284 
285 
286 
287 
288 
289 
290 
291         template <typename TryCatch, typename Exception, typename Expr>
292         struct catch_push_back<TryCatch, Exception, Expr, 6>
293         {
294             typedef
295                 typename proto::result_of::make_expr<
296                     phoenix::tag::catch_
297                   , proto::basic_default_domain
298                   , catch_exception<Exception>
299                   , Expr
300                 >::type
301                 catch_expr;
302             typedef phoenix::expression::try_catch<
303                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type
304               , catch_expr> gen_type;
305             typedef typename gen_type::type type;
306             static type
makecatch_push_back307             make(
308                 TryCatch const& try_catch
309               , Expr const& catch_
310             )
311             {
312                 return
313                     gen_type::make(
314                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch)
315                       , proto::make_expr<
316                             phoenix::tag::catch_
317                           , proto::basic_default_domain
318                         >(catch_exception<Exception>(), catch_)
319                     );
320             }
321         };
322 
323         template <typename TryCatch, typename Expr>
324         struct catch_all_push_back<TryCatch, Expr, 6>
325         {
326             typedef
327                 typename proto::result_of::make_expr<
328                     phoenix::tag::catch_all
329                   , proto::basic_default_domain
330                   , Expr
331                 >::type
332                 catch_expr;
333             typedef phoenix::expression::try_catch<
334                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type
335               , catch_expr> gen_type;
336             typedef typename gen_type::type type;
337             static type
makecatch_all_push_back338             make(
339                 TryCatch const& try_catch
340               , Expr const& catch_
341             )
342             {
343                 return
344                     gen_type::make(
345                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch)
346                       , proto::make_expr<
347                             phoenix::tag::catch_all
348                           , proto::basic_default_domain
349                         >(catch_)
350                     );
351             }
352         };
353 
354 
355 
356 
357 
358 
359 
360         template <typename TryCatch, typename Exception, typename Expr>
361         struct catch_push_back<TryCatch, Exception, Expr, 7>
362         {
363             typedef
364                 typename proto::result_of::make_expr<
365                     phoenix::tag::catch_
366                   , proto::basic_default_domain
367                   , catch_exception<Exception>
368                   , Expr
369                 >::type
370                 catch_expr;
371             typedef phoenix::expression::try_catch<
372                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type
373               , catch_expr> gen_type;
374             typedef typename gen_type::type type;
375             static type
makecatch_push_back376             make(
377                 TryCatch const& try_catch
378               , Expr const& catch_
379             )
380             {
381                 return
382                     gen_type::make(
383                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch)
384                       , proto::make_expr<
385                             phoenix::tag::catch_
386                           , proto::basic_default_domain
387                         >(catch_exception<Exception>(), catch_)
388                     );
389             }
390         };
391 
392         template <typename TryCatch, typename Expr>
393         struct catch_all_push_back<TryCatch, Expr, 7>
394         {
395             typedef
396                 typename proto::result_of::make_expr<
397                     phoenix::tag::catch_all
398                   , proto::basic_default_domain
399                   , Expr
400                 >::type
401                 catch_expr;
402             typedef phoenix::expression::try_catch<
403                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type
404               , catch_expr> gen_type;
405             typedef typename gen_type::type type;
406             static type
makecatch_all_push_back407             make(
408                 TryCatch const& try_catch
409               , Expr const& catch_
410             )
411             {
412                 return
413                     gen_type::make(
414                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch)
415                       , proto::make_expr<
416                             phoenix::tag::catch_all
417                           , proto::basic_default_domain
418                         >(catch_)
419                     );
420             }
421         };
422 
423 
424 
425 
426 
427 
428 
429         template <typename TryCatch, typename Exception, typename Expr>
430         struct catch_push_back<TryCatch, Exception, Expr, 8>
431         {
432             typedef
433                 typename proto::result_of::make_expr<
434                     phoenix::tag::catch_
435                   , proto::basic_default_domain
436                   , catch_exception<Exception>
437                   , Expr
438                 >::type
439                 catch_expr;
440             typedef phoenix::expression::try_catch<
441                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type
442               , catch_expr> gen_type;
443             typedef typename gen_type::type type;
444             static type
makecatch_push_back445             make(
446                 TryCatch const& try_catch
447               , Expr const& catch_
448             )
449             {
450                 return
451                     gen_type::make(
452                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch)
453                       , proto::make_expr<
454                             phoenix::tag::catch_
455                           , proto::basic_default_domain
456                         >(catch_exception<Exception>(), catch_)
457                     );
458             }
459         };
460 
461         template <typename TryCatch, typename Expr>
462         struct catch_all_push_back<TryCatch, Expr, 8>
463         {
464             typedef
465                 typename proto::result_of::make_expr<
466                     phoenix::tag::catch_all
467                   , proto::basic_default_domain
468                   , Expr
469                 >::type
470                 catch_expr;
471             typedef phoenix::expression::try_catch<
472                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type
473               , catch_expr> gen_type;
474             typedef typename gen_type::type type;
475             static type
makecatch_all_push_back476             make(
477                 TryCatch const& try_catch
478               , Expr const& catch_
479             )
480             {
481                 return
482                     gen_type::make(
483                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch)
484                       , proto::make_expr<
485                             phoenix::tag::catch_all
486                           , proto::basic_default_domain
487                         >(catch_)
488                     );
489             }
490         };
491 
492 
493 
494 
495 
496 
497 
498         template <typename TryCatch, typename Exception, typename Expr>
499         struct catch_push_back<TryCatch, Exception, Expr, 9>
500         {
501             typedef
502                 typename proto::result_of::make_expr<
503                     phoenix::tag::catch_
504                   , proto::basic_default_domain
505                   , catch_exception<Exception>
506                   , Expr
507                 >::type
508                 catch_expr;
509             typedef phoenix::expression::try_catch<
510                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type
511               , catch_expr> gen_type;
512             typedef typename gen_type::type type;
513             static type
makecatch_push_back514             make(
515                 TryCatch const& try_catch
516               , Expr const& catch_
517             )
518             {
519                 return
520                     gen_type::make(
521                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch)
522                       , proto::make_expr<
523                             phoenix::tag::catch_
524                           , proto::basic_default_domain
525                         >(catch_exception<Exception>(), catch_)
526                     );
527             }
528         };
529 
530         template <typename TryCatch, typename Expr>
531         struct catch_all_push_back<TryCatch, Expr, 9>
532         {
533             typedef
534                 typename proto::result_of::make_expr<
535                     phoenix::tag::catch_all
536                   , proto::basic_default_domain
537                   , Expr
538                 >::type
539                 catch_expr;
540             typedef phoenix::expression::try_catch<
541                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type
542               , catch_expr> gen_type;
543             typedef typename gen_type::type type;
544             static type
makecatch_all_push_back545             make(
546                 TryCatch const& try_catch
547               , Expr const& catch_
548             )
549             {
550                 return
551                     gen_type::make(
552                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch)
553                       , proto::make_expr<
554                             phoenix::tag::catch_all
555                           , proto::basic_default_domain
556                         >(catch_)
557                     );
558             }
559         };
560 
561 
562 
563 
564 
565 
566 
567         template <typename TryCatch, typename Exception, typename Expr>
568         struct catch_push_back<TryCatch, Exception, Expr, 10>
569         {
570             typedef
571                 typename proto::result_of::make_expr<
572                     phoenix::tag::catch_
573                   , proto::basic_default_domain
574                   , catch_exception<Exception>
575                   , Expr
576                 >::type
577                 catch_expr;
578             typedef phoenix::expression::try_catch<
579                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type
580               , catch_expr> gen_type;
581             typedef typename gen_type::type type;
582             static type
makecatch_push_back583             make(
584                 TryCatch const& try_catch
585               , Expr const& catch_
586             )
587             {
588                 return
589                     gen_type::make(
590                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch)
591                       , proto::make_expr<
592                             phoenix::tag::catch_
593                           , proto::basic_default_domain
594                         >(catch_exception<Exception>(), catch_)
595                     );
596             }
597         };
598 
599         template <typename TryCatch, typename Expr>
600         struct catch_all_push_back<TryCatch, Expr, 10>
601         {
602             typedef
603                 typename proto::result_of::make_expr<
604                     phoenix::tag::catch_all
605                   , proto::basic_default_domain
606                   , Expr
607                 >::type
608                 catch_expr;
609             typedef phoenix::expression::try_catch<
610                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type
611               , catch_expr> gen_type;
612             typedef typename gen_type::type type;
613             static type
makecatch_all_push_back614             make(
615                 TryCatch const& try_catch
616               , Expr const& catch_
617             )
618             {
619                 return
620                     gen_type::make(
621                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch)
622                       , proto::make_expr<
623                             phoenix::tag::catch_all
624                           , proto::basic_default_domain
625                         >(catch_)
626                     );
627             }
628         };
629 
630 
631 
632 
633 
634 
635 
636         template <typename TryCatch, typename Exception, typename Expr>
637         struct catch_push_back<TryCatch, Exception, Expr, 11>
638         {
639             typedef
640                 typename proto::result_of::make_expr<
641                     phoenix::tag::catch_
642                   , proto::basic_default_domain
643                   , catch_exception<Exception>
644                   , Expr
645                 >::type
646                 catch_expr;
647             typedef phoenix::expression::try_catch<
648                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type
649               , catch_expr> gen_type;
650             typedef typename gen_type::type type;
651             static type
makecatch_push_back652             make(
653                 TryCatch const& try_catch
654               , Expr const& catch_
655             )
656             {
657                 return
658                     gen_type::make(
659                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch)
660                       , proto::make_expr<
661                             phoenix::tag::catch_
662                           , proto::basic_default_domain
663                         >(catch_exception<Exception>(), catch_)
664                     );
665             }
666         };
667 
668         template <typename TryCatch, typename Expr>
669         struct catch_all_push_back<TryCatch, Expr, 11>
670         {
671             typedef
672                 typename proto::result_of::make_expr<
673                     phoenix::tag::catch_all
674                   , proto::basic_default_domain
675                   , Expr
676                 >::type
677                 catch_expr;
678             typedef phoenix::expression::try_catch<
679                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type
680               , catch_expr> gen_type;
681             typedef typename gen_type::type type;
682             static type
makecatch_all_push_back683             make(
684                 TryCatch const& try_catch
685               , Expr const& catch_
686             )
687             {
688                 return
689                     gen_type::make(
690                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch)
691                       , proto::make_expr<
692                             phoenix::tag::catch_all
693                           , proto::basic_default_domain
694                         >(catch_)
695                     );
696             }
697         };
698 
699 
700 
701 
702 
703 
704 
705         template <typename TryCatch, typename Exception, typename Expr>
706         struct catch_push_back<TryCatch, Exception, Expr, 12>
707         {
708             typedef
709                 typename proto::result_of::make_expr<
710                     phoenix::tag::catch_
711                   , proto::basic_default_domain
712                   , catch_exception<Exception>
713                   , Expr
714                 >::type
715                 catch_expr;
716             typedef phoenix::expression::try_catch<
717                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type
718               , catch_expr> gen_type;
719             typedef typename gen_type::type type;
720             static type
makecatch_push_back721             make(
722                 TryCatch const& try_catch
723               , Expr const& catch_
724             )
725             {
726                 return
727                     gen_type::make(
728                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch)
729                       , proto::make_expr<
730                             phoenix::tag::catch_
731                           , proto::basic_default_domain
732                         >(catch_exception<Exception>(), catch_)
733                     );
734             }
735         };
736 
737         template <typename TryCatch, typename Expr>
738         struct catch_all_push_back<TryCatch, Expr, 12>
739         {
740             typedef
741                 typename proto::result_of::make_expr<
742                     phoenix::tag::catch_all
743                   , proto::basic_default_domain
744                   , Expr
745                 >::type
746                 catch_expr;
747             typedef phoenix::expression::try_catch<
748                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type
749               , catch_expr> gen_type;
750             typedef typename gen_type::type type;
751             static type
makecatch_all_push_back752             make(
753                 TryCatch const& try_catch
754               , Expr const& catch_
755             )
756             {
757                 return
758                     gen_type::make(
759                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch)
760                       , proto::make_expr<
761                             phoenix::tag::catch_all
762                           , proto::basic_default_domain
763                         >(catch_)
764                     );
765             }
766         };
767 
768 
769 
770 
771 
772 
773 
774         template <typename TryCatch, typename Exception, typename Expr>
775         struct catch_push_back<TryCatch, Exception, Expr, 13>
776         {
777             typedef
778                 typename proto::result_of::make_expr<
779                     phoenix::tag::catch_
780                   , proto::basic_default_domain
781                   , catch_exception<Exception>
782                   , Expr
783                 >::type
784                 catch_expr;
785             typedef phoenix::expression::try_catch<
786                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type
787               , catch_expr> gen_type;
788             typedef typename gen_type::type type;
789             static type
makecatch_push_back790             make(
791                 TryCatch const& try_catch
792               , Expr const& catch_
793             )
794             {
795                 return
796                     gen_type::make(
797                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch)
798                       , proto::make_expr<
799                             phoenix::tag::catch_
800                           , proto::basic_default_domain
801                         >(catch_exception<Exception>(), catch_)
802                     );
803             }
804         };
805 
806         template <typename TryCatch, typename Expr>
807         struct catch_all_push_back<TryCatch, Expr, 13>
808         {
809             typedef
810                 typename proto::result_of::make_expr<
811                     phoenix::tag::catch_all
812                   , proto::basic_default_domain
813                   , Expr
814                 >::type
815                 catch_expr;
816             typedef phoenix::expression::try_catch<
817                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type
818               , catch_expr> gen_type;
819             typedef typename gen_type::type type;
820             static type
makecatch_all_push_back821             make(
822                 TryCatch const& try_catch
823               , Expr const& catch_
824             )
825             {
826                 return
827                     gen_type::make(
828                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch)
829                       , proto::make_expr<
830                             phoenix::tag::catch_all
831                           , proto::basic_default_domain
832                         >(catch_)
833                     );
834             }
835         };
836 
837 
838 
839 
840 
841 
842 
843         template <typename TryCatch, typename Exception, typename Expr>
844         struct catch_push_back<TryCatch, Exception, Expr, 14>
845         {
846             typedef
847                 typename proto::result_of::make_expr<
848                     phoenix::tag::catch_
849                   , proto::basic_default_domain
850                   , catch_exception<Exception>
851                   , Expr
852                 >::type
853                 catch_expr;
854             typedef phoenix::expression::try_catch<
855                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type
856               , catch_expr> gen_type;
857             typedef typename gen_type::type type;
858             static type
makecatch_push_back859             make(
860                 TryCatch const& try_catch
861               , Expr const& catch_
862             )
863             {
864                 return
865                     gen_type::make(
866                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch)
867                       , proto::make_expr<
868                             phoenix::tag::catch_
869                           , proto::basic_default_domain
870                         >(catch_exception<Exception>(), catch_)
871                     );
872             }
873         };
874 
875         template <typename TryCatch, typename Expr>
876         struct catch_all_push_back<TryCatch, Expr, 14>
877         {
878             typedef
879                 typename proto::result_of::make_expr<
880                     phoenix::tag::catch_all
881                   , proto::basic_default_domain
882                   , Expr
883                 >::type
884                 catch_expr;
885             typedef phoenix::expression::try_catch<
886                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type
887               , catch_expr> gen_type;
888             typedef typename gen_type::type type;
889             static type
makecatch_all_push_back890             make(
891                 TryCatch const& try_catch
892               , Expr const& catch_
893             )
894             {
895                 return
896                     gen_type::make(
897                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch)
898                       , proto::make_expr<
899                             phoenix::tag::catch_all
900                           , proto::basic_default_domain
901                         >(catch_)
902                     );
903             }
904         };
905 
906 
907 
908 
909 
910 
911 
912         template <typename TryCatch, typename Exception, typename Expr>
913         struct catch_push_back<TryCatch, Exception, Expr, 15>
914         {
915             typedef
916                 typename proto::result_of::make_expr<
917                     phoenix::tag::catch_
918                   , proto::basic_default_domain
919                   , catch_exception<Exception>
920                   , Expr
921                 >::type
922                 catch_expr;
923             typedef phoenix::expression::try_catch<
924                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type
925               , catch_expr> gen_type;
926             typedef typename gen_type::type type;
927             static type
makecatch_push_back928             make(
929                 TryCatch const& try_catch
930               , Expr const& catch_
931             )
932             {
933                 return
934                     gen_type::make(
935                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch)
936                       , proto::make_expr<
937                             phoenix::tag::catch_
938                           , proto::basic_default_domain
939                         >(catch_exception<Exception>(), catch_)
940                     );
941             }
942         };
943 
944         template <typename TryCatch, typename Expr>
945         struct catch_all_push_back<TryCatch, Expr, 15>
946         {
947             typedef
948                 typename proto::result_of::make_expr<
949                     phoenix::tag::catch_all
950                   , proto::basic_default_domain
951                   , Expr
952                 >::type
953                 catch_expr;
954             typedef phoenix::expression::try_catch<
955                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type
956               , catch_expr> gen_type;
957             typedef typename gen_type::type type;
958             static type
makecatch_all_push_back959             make(
960                 TryCatch const& try_catch
961               , Expr const& catch_
962             )
963             {
964                 return
965                     gen_type::make(
966                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch)
967                       , proto::make_expr<
968                             phoenix::tag::catch_all
969                           , proto::basic_default_domain
970                         >(catch_)
971                     );
972             }
973         };
974 
975 
976 
977 
978 
979 
980 
981         template <typename TryCatch, typename Exception, typename Expr>
982         struct catch_push_back<TryCatch, Exception, Expr, 16>
983         {
984             typedef
985                 typename proto::result_of::make_expr<
986                     phoenix::tag::catch_
987                   , proto::basic_default_domain
988                   , catch_exception<Exception>
989                   , Expr
990                 >::type
991                 catch_expr;
992             typedef phoenix::expression::try_catch<
993                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type
994               , catch_expr> gen_type;
995             typedef typename gen_type::type type;
996             static type
makecatch_push_back997             make(
998                 TryCatch const& try_catch
999               , Expr const& catch_
1000             )
1001             {
1002                 return
1003                     gen_type::make(
1004                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch)
1005                       , proto::make_expr<
1006                             phoenix::tag::catch_
1007                           , proto::basic_default_domain
1008                         >(catch_exception<Exception>(), catch_)
1009                     );
1010             }
1011         };
1012 
1013         template <typename TryCatch, typename Expr>
1014         struct catch_all_push_back<TryCatch, Expr, 16>
1015         {
1016             typedef
1017                 typename proto::result_of::make_expr<
1018                     phoenix::tag::catch_all
1019                   , proto::basic_default_domain
1020                   , Expr
1021                 >::type
1022                 catch_expr;
1023             typedef phoenix::expression::try_catch<
1024                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type
1025               , catch_expr> gen_type;
1026             typedef typename gen_type::type type;
1027             static type
makecatch_all_push_back1028             make(
1029                 TryCatch const& try_catch
1030               , Expr const& catch_
1031             )
1032             {
1033                 return
1034                     gen_type::make(
1035                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch)
1036                       , proto::make_expr<
1037                             phoenix::tag::catch_all
1038                           , proto::basic_default_domain
1039                         >(catch_)
1040                     );
1041             }
1042         };
1043 
1044 
1045 
1046 
1047 
1048 
1049 
1050         template <typename TryCatch, typename Exception, typename Expr>
1051         struct catch_push_back<TryCatch, Exception, Expr, 17>
1052         {
1053             typedef
1054                 typename proto::result_of::make_expr<
1055                     phoenix::tag::catch_
1056                   , proto::basic_default_domain
1057                   , catch_exception<Exception>
1058                   , Expr
1059                 >::type
1060                 catch_expr;
1061             typedef phoenix::expression::try_catch<
1062                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type
1063               , catch_expr> gen_type;
1064             typedef typename gen_type::type type;
1065             static type
makecatch_push_back1066             make(
1067                 TryCatch const& try_catch
1068               , Expr const& catch_
1069             )
1070             {
1071                 return
1072                     gen_type::make(
1073                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch)
1074                       , proto::make_expr<
1075                             phoenix::tag::catch_
1076                           , proto::basic_default_domain
1077                         >(catch_exception<Exception>(), catch_)
1078                     );
1079             }
1080         };
1081 
1082         template <typename TryCatch, typename Expr>
1083         struct catch_all_push_back<TryCatch, Expr, 17>
1084         {
1085             typedef
1086                 typename proto::result_of::make_expr<
1087                     phoenix::tag::catch_all
1088                   , proto::basic_default_domain
1089                   , Expr
1090                 >::type
1091                 catch_expr;
1092             typedef phoenix::expression::try_catch<
1093                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type
1094               , catch_expr> gen_type;
1095             typedef typename gen_type::type type;
1096             static type
makecatch_all_push_back1097             make(
1098                 TryCatch const& try_catch
1099               , Expr const& catch_
1100             )
1101             {
1102                 return
1103                     gen_type::make(
1104                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch)
1105                       , proto::make_expr<
1106                             phoenix::tag::catch_all
1107                           , proto::basic_default_domain
1108                         >(catch_)
1109                     );
1110             }
1111         };
1112 
1113 
1114 
1115 
1116 
1117 
1118 
1119         template <typename TryCatch, typename Exception, typename Expr>
1120         struct catch_push_back<TryCatch, Exception, Expr, 18>
1121         {
1122             typedef
1123                 typename proto::result_of::make_expr<
1124                     phoenix::tag::catch_
1125                   , proto::basic_default_domain
1126                   , catch_exception<Exception>
1127                   , Expr
1128                 >::type
1129                 catch_expr;
1130             typedef phoenix::expression::try_catch<
1131                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type
1132               , catch_expr> gen_type;
1133             typedef typename gen_type::type type;
1134             static type
makecatch_push_back1135             make(
1136                 TryCatch const& try_catch
1137               , Expr const& catch_
1138             )
1139             {
1140                 return
1141                     gen_type::make(
1142                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch)
1143                       , proto::make_expr<
1144                             phoenix::tag::catch_
1145                           , proto::basic_default_domain
1146                         >(catch_exception<Exception>(), catch_)
1147                     );
1148             }
1149         };
1150 
1151         template <typename TryCatch, typename Expr>
1152         struct catch_all_push_back<TryCatch, Expr, 18>
1153         {
1154             typedef
1155                 typename proto::result_of::make_expr<
1156                     phoenix::tag::catch_all
1157                   , proto::basic_default_domain
1158                   , Expr
1159                 >::type
1160                 catch_expr;
1161             typedef phoenix::expression::try_catch<
1162                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type
1163               , catch_expr> gen_type;
1164             typedef typename gen_type::type type;
1165             static type
makecatch_all_push_back1166             make(
1167                 TryCatch const& try_catch
1168               , Expr const& catch_
1169             )
1170             {
1171                 return
1172                     gen_type::make(
1173                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch)
1174                       , proto::make_expr<
1175                             phoenix::tag::catch_all
1176                           , proto::basic_default_domain
1177                         >(catch_)
1178                     );
1179             }
1180         };
1181 
1182 
1183 
1184 
1185 
1186 
1187 
1188         template <typename TryCatch, typename Exception, typename Expr>
1189         struct catch_push_back<TryCatch, Exception, Expr, 19>
1190         {
1191             typedef
1192                 typename proto::result_of::make_expr<
1193                     phoenix::tag::catch_
1194                   , proto::basic_default_domain
1195                   , catch_exception<Exception>
1196                   , Expr
1197                 >::type
1198                 catch_expr;
1199             typedef phoenix::expression::try_catch<
1200                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type
1201               , catch_expr> gen_type;
1202             typedef typename gen_type::type type;
1203             static type
makecatch_push_back1204             make(
1205                 TryCatch const& try_catch
1206               , Expr const& catch_
1207             )
1208             {
1209                 return
1210                     gen_type::make(
1211                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch)
1212                       , proto::make_expr<
1213                             phoenix::tag::catch_
1214                           , proto::basic_default_domain
1215                         >(catch_exception<Exception>(), catch_)
1216                     );
1217             }
1218         };
1219 
1220         template <typename TryCatch, typename Expr>
1221         struct catch_all_push_back<TryCatch, Expr, 19>
1222         {
1223             typedef
1224                 typename proto::result_of::make_expr<
1225                     phoenix::tag::catch_all
1226                   , proto::basic_default_domain
1227                   , Expr
1228                 >::type
1229                 catch_expr;
1230             typedef phoenix::expression::try_catch<
1231                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type
1232               , catch_expr> gen_type;
1233             typedef typename gen_type::type type;
1234             static type
makecatch_all_push_back1235             make(
1236                 TryCatch const& try_catch
1237               , Expr const& catch_
1238             )
1239             {
1240                 return
1241                     gen_type::make(
1242                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch)
1243                       , proto::make_expr<
1244                             phoenix::tag::catch_all
1245                           , proto::basic_default_domain
1246                         >(catch_)
1247                     );
1248             }
1249         };
1250 
1251 
1252 
1253 
1254 
1255 
1256 
1257         template <typename TryCatch, typename Exception, typename Expr>
1258         struct catch_push_back<TryCatch, Exception, Expr, 20>
1259         {
1260             typedef
1261                 typename proto::result_of::make_expr<
1262                     phoenix::tag::catch_
1263                   , proto::basic_default_domain
1264                   , catch_exception<Exception>
1265                   , Expr
1266                 >::type
1267                 catch_expr;
1268             typedef phoenix::expression::try_catch<
1269                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type
1270               , catch_expr> gen_type;
1271             typedef typename gen_type::type type;
1272             static type
makecatch_push_back1273             make(
1274                 TryCatch const& try_catch
1275               , Expr const& catch_
1276             )
1277             {
1278                 return
1279                     gen_type::make(
1280                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch)
1281                       , proto::make_expr<
1282                             phoenix::tag::catch_
1283                           , proto::basic_default_domain
1284                         >(catch_exception<Exception>(), catch_)
1285                     );
1286             }
1287         };
1288 
1289         template <typename TryCatch, typename Expr>
1290         struct catch_all_push_back<TryCatch, Expr, 20>
1291         {
1292             typedef
1293                 typename proto::result_of::make_expr<
1294                     phoenix::tag::catch_all
1295                   , proto::basic_default_domain
1296                   , Expr
1297                 >::type
1298                 catch_expr;
1299             typedef phoenix::expression::try_catch<
1300                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type
1301               , catch_expr> gen_type;
1302             typedef typename gen_type::type type;
1303             static type
makecatch_all_push_back1304             make(
1305                 TryCatch const& try_catch
1306               , Expr const& catch_
1307             )
1308             {
1309                 return
1310                     gen_type::make(
1311                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch)
1312                       , proto::make_expr<
1313                             phoenix::tag::catch_all
1314                           , proto::basic_default_domain
1315                         >(catch_)
1316                     );
1317             }
1318         };
1319 
1320 
1321 
1322 
1323 
1324 
1325 
1326         template <typename TryCatch, typename Exception, typename Expr>
1327         struct catch_push_back<TryCatch, Exception, Expr, 21>
1328         {
1329             typedef
1330                 typename proto::result_of::make_expr<
1331                     phoenix::tag::catch_
1332                   , proto::basic_default_domain
1333                   , catch_exception<Exception>
1334                   , Expr
1335                 >::type
1336                 catch_expr;
1337             typedef phoenix::expression::try_catch<
1338                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type
1339               , catch_expr> gen_type;
1340             typedef typename gen_type::type type;
1341             static type
makecatch_push_back1342             make(
1343                 TryCatch const& try_catch
1344               , Expr const& catch_
1345             )
1346             {
1347                 return
1348                     gen_type::make(
1349                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch)
1350                       , proto::make_expr<
1351                             phoenix::tag::catch_
1352                           , proto::basic_default_domain
1353                         >(catch_exception<Exception>(), catch_)
1354                     );
1355             }
1356         };
1357 
1358         template <typename TryCatch, typename Expr>
1359         struct catch_all_push_back<TryCatch, Expr, 21>
1360         {
1361             typedef
1362                 typename proto::result_of::make_expr<
1363                     phoenix::tag::catch_all
1364                   , proto::basic_default_domain
1365                   , Expr
1366                 >::type
1367                 catch_expr;
1368             typedef phoenix::expression::try_catch<
1369                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type
1370               , catch_expr> gen_type;
1371             typedef typename gen_type::type type;
1372             static type
makecatch_all_push_back1373             make(
1374                 TryCatch const& try_catch
1375               , Expr const& catch_
1376             )
1377             {
1378                 return
1379                     gen_type::make(
1380                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch)
1381                       , proto::make_expr<
1382                             phoenix::tag::catch_all
1383                           , proto::basic_default_domain
1384                         >(catch_)
1385                     );
1386             }
1387         };
1388 
1389 
1390 
1391 
1392 
1393 
1394 
1395         template <typename TryCatch, typename Exception, typename Expr>
1396         struct catch_push_back<TryCatch, Exception, Expr, 22>
1397         {
1398             typedef
1399                 typename proto::result_of::make_expr<
1400                     phoenix::tag::catch_
1401                   , proto::basic_default_domain
1402                   , catch_exception<Exception>
1403                   , Expr
1404                 >::type
1405                 catch_expr;
1406             typedef phoenix::expression::try_catch<
1407                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type
1408               , catch_expr> gen_type;
1409             typedef typename gen_type::type type;
1410             static type
makecatch_push_back1411             make(
1412                 TryCatch const& try_catch
1413               , Expr const& catch_
1414             )
1415             {
1416                 return
1417                     gen_type::make(
1418                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch)
1419                       , proto::make_expr<
1420                             phoenix::tag::catch_
1421                           , proto::basic_default_domain
1422                         >(catch_exception<Exception>(), catch_)
1423                     );
1424             }
1425         };
1426 
1427         template <typename TryCatch, typename Expr>
1428         struct catch_all_push_back<TryCatch, Expr, 22>
1429         {
1430             typedef
1431                 typename proto::result_of::make_expr<
1432                     phoenix::tag::catch_all
1433                   , proto::basic_default_domain
1434                   , Expr
1435                 >::type
1436                 catch_expr;
1437             typedef phoenix::expression::try_catch<
1438                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type
1439               , catch_expr> gen_type;
1440             typedef typename gen_type::type type;
1441             static type
makecatch_all_push_back1442             make(
1443                 TryCatch const& try_catch
1444               , Expr const& catch_
1445             )
1446             {
1447                 return
1448                     gen_type::make(
1449                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch)
1450                       , proto::make_expr<
1451                             phoenix::tag::catch_all
1452                           , proto::basic_default_domain
1453                         >(catch_)
1454                     );
1455             }
1456         };
1457 
1458 
1459 
1460 
1461 
1462 
1463 
1464         template <typename TryCatch, typename Exception, typename Expr>
1465         struct catch_push_back<TryCatch, Exception, Expr, 23>
1466         {
1467             typedef
1468                 typename proto::result_of::make_expr<
1469                     phoenix::tag::catch_
1470                   , proto::basic_default_domain
1471                   , catch_exception<Exception>
1472                   , Expr
1473                 >::type
1474                 catch_expr;
1475             typedef phoenix::expression::try_catch<
1476                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type
1477               , catch_expr> gen_type;
1478             typedef typename gen_type::type type;
1479             static type
makecatch_push_back1480             make(
1481                 TryCatch const& try_catch
1482               , Expr const& catch_
1483             )
1484             {
1485                 return
1486                     gen_type::make(
1487                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch)
1488                       , proto::make_expr<
1489                             phoenix::tag::catch_
1490                           , proto::basic_default_domain
1491                         >(catch_exception<Exception>(), catch_)
1492                     );
1493             }
1494         };
1495 
1496         template <typename TryCatch, typename Expr>
1497         struct catch_all_push_back<TryCatch, Expr, 23>
1498         {
1499             typedef
1500                 typename proto::result_of::make_expr<
1501                     phoenix::tag::catch_all
1502                   , proto::basic_default_domain
1503                   , Expr
1504                 >::type
1505                 catch_expr;
1506             typedef phoenix::expression::try_catch<
1507                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type
1508               , catch_expr> gen_type;
1509             typedef typename gen_type::type type;
1510             static type
makecatch_all_push_back1511             make(
1512                 TryCatch const& try_catch
1513               , Expr const& catch_
1514             )
1515             {
1516                 return
1517                     gen_type::make(
1518                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch)
1519                       , proto::make_expr<
1520                             phoenix::tag::catch_all
1521                           , proto::basic_default_domain
1522                         >(catch_)
1523                     );
1524             }
1525         };
1526 
1527 
1528 
1529 
1530 
1531 
1532 
1533         template <typename TryCatch, typename Exception, typename Expr>
1534         struct catch_push_back<TryCatch, Exception, Expr, 24>
1535         {
1536             typedef
1537                 typename proto::result_of::make_expr<
1538                     phoenix::tag::catch_
1539                   , proto::basic_default_domain
1540                   , catch_exception<Exception>
1541                   , Expr
1542                 >::type
1543                 catch_expr;
1544             typedef phoenix::expression::try_catch<
1545                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type
1546               , catch_expr> gen_type;
1547             typedef typename gen_type::type type;
1548             static type
makecatch_push_back1549             make(
1550                 TryCatch const& try_catch
1551               , Expr const& catch_
1552             )
1553             {
1554                 return
1555                     gen_type::make(
1556                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch)
1557                       , proto::make_expr<
1558                             phoenix::tag::catch_
1559                           , proto::basic_default_domain
1560                         >(catch_exception<Exception>(), catch_)
1561                     );
1562             }
1563         };
1564 
1565         template <typename TryCatch, typename Expr>
1566         struct catch_all_push_back<TryCatch, Expr, 24>
1567         {
1568             typedef
1569                 typename proto::result_of::make_expr<
1570                     phoenix::tag::catch_all
1571                   , proto::basic_default_domain
1572                   , Expr
1573                 >::type
1574                 catch_expr;
1575             typedef phoenix::expression::try_catch<
1576                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type
1577               , catch_expr> gen_type;
1578             typedef typename gen_type::type type;
1579             static type
makecatch_all_push_back1580             make(
1581                 TryCatch const& try_catch
1582               , Expr const& catch_
1583             )
1584             {
1585                 return
1586                     gen_type::make(
1587                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch)
1588                       , proto::make_expr<
1589                             phoenix::tag::catch_all
1590                           , proto::basic_default_domain
1591                         >(catch_)
1592                     );
1593             }
1594         };
1595 
1596 
1597 
1598 
1599 
1600 
1601 
1602         template <typename TryCatch, typename Exception, typename Expr>
1603         struct catch_push_back<TryCatch, Exception, Expr, 25>
1604         {
1605             typedef
1606                 typename proto::result_of::make_expr<
1607                     phoenix::tag::catch_
1608                   , proto::basic_default_domain
1609                   , catch_exception<Exception>
1610                   , Expr
1611                 >::type
1612                 catch_expr;
1613             typedef phoenix::expression::try_catch<
1614                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type
1615               , catch_expr> gen_type;
1616             typedef typename gen_type::type type;
1617             static type
makecatch_push_back1618             make(
1619                 TryCatch const& try_catch
1620               , Expr const& catch_
1621             )
1622             {
1623                 return
1624                     gen_type::make(
1625                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch)
1626                       , proto::make_expr<
1627                             phoenix::tag::catch_
1628                           , proto::basic_default_domain
1629                         >(catch_exception<Exception>(), catch_)
1630                     );
1631             }
1632         };
1633 
1634         template <typename TryCatch, typename Expr>
1635         struct catch_all_push_back<TryCatch, Expr, 25>
1636         {
1637             typedef
1638                 typename proto::result_of::make_expr<
1639                     phoenix::tag::catch_all
1640                   , proto::basic_default_domain
1641                   , Expr
1642                 >::type
1643                 catch_expr;
1644             typedef phoenix::expression::try_catch<
1645                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type
1646               , catch_expr> gen_type;
1647             typedef typename gen_type::type type;
1648             static type
makecatch_all_push_back1649             make(
1650                 TryCatch const& try_catch
1651               , Expr const& catch_
1652             )
1653             {
1654                 return
1655                     gen_type::make(
1656                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch)
1657                       , proto::make_expr<
1658                             phoenix::tag::catch_all
1659                           , proto::basic_default_domain
1660                         >(catch_)
1661                     );
1662             }
1663         };
1664 
1665 
1666 
1667 
1668 
1669 
1670 
1671         template <typename TryCatch, typename Exception, typename Expr>
1672         struct catch_push_back<TryCatch, Exception, Expr, 26>
1673         {
1674             typedef
1675                 typename proto::result_of::make_expr<
1676                     phoenix::tag::catch_
1677                   , proto::basic_default_domain
1678                   , catch_exception<Exception>
1679                   , Expr
1680                 >::type
1681                 catch_expr;
1682             typedef phoenix::expression::try_catch<
1683                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type
1684               , catch_expr> gen_type;
1685             typedef typename gen_type::type type;
1686             static type
makecatch_push_back1687             make(
1688                 TryCatch const& try_catch
1689               , Expr const& catch_
1690             )
1691             {
1692                 return
1693                     gen_type::make(
1694                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch)
1695                       , proto::make_expr<
1696                             phoenix::tag::catch_
1697                           , proto::basic_default_domain
1698                         >(catch_exception<Exception>(), catch_)
1699                     );
1700             }
1701         };
1702 
1703         template <typename TryCatch, typename Expr>
1704         struct catch_all_push_back<TryCatch, Expr, 26>
1705         {
1706             typedef
1707                 typename proto::result_of::make_expr<
1708                     phoenix::tag::catch_all
1709                   , proto::basic_default_domain
1710                   , Expr
1711                 >::type
1712                 catch_expr;
1713             typedef phoenix::expression::try_catch<
1714                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type
1715               , catch_expr> gen_type;
1716             typedef typename gen_type::type type;
1717             static type
makecatch_all_push_back1718             make(
1719                 TryCatch const& try_catch
1720               , Expr const& catch_
1721             )
1722             {
1723                 return
1724                     gen_type::make(
1725                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch)
1726                       , proto::make_expr<
1727                             phoenix::tag::catch_all
1728                           , proto::basic_default_domain
1729                         >(catch_)
1730                     );
1731             }
1732         };
1733 
1734 
1735 
1736 
1737 
1738 
1739 
1740         template <typename TryCatch, typename Exception, typename Expr>
1741         struct catch_push_back<TryCatch, Exception, Expr, 27>
1742         {
1743             typedef
1744                 typename proto::result_of::make_expr<
1745                     phoenix::tag::catch_
1746                   , proto::basic_default_domain
1747                   , catch_exception<Exception>
1748                   , Expr
1749                 >::type
1750                 catch_expr;
1751             typedef phoenix::expression::try_catch<
1752                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type
1753               , catch_expr> gen_type;
1754             typedef typename gen_type::type type;
1755             static type
makecatch_push_back1756             make(
1757                 TryCatch const& try_catch
1758               , Expr const& catch_
1759             )
1760             {
1761                 return
1762                     gen_type::make(
1763                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch)
1764                       , proto::make_expr<
1765                             phoenix::tag::catch_
1766                           , proto::basic_default_domain
1767                         >(catch_exception<Exception>(), catch_)
1768                     );
1769             }
1770         };
1771 
1772         template <typename TryCatch, typename Expr>
1773         struct catch_all_push_back<TryCatch, Expr, 27>
1774         {
1775             typedef
1776                 typename proto::result_of::make_expr<
1777                     phoenix::tag::catch_all
1778                   , proto::basic_default_domain
1779                   , Expr
1780                 >::type
1781                 catch_expr;
1782             typedef phoenix::expression::try_catch<
1783                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type
1784               , catch_expr> gen_type;
1785             typedef typename gen_type::type type;
1786             static type
makecatch_all_push_back1787             make(
1788                 TryCatch const& try_catch
1789               , Expr const& catch_
1790             )
1791             {
1792                 return
1793                     gen_type::make(
1794                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch)
1795                       , proto::make_expr<
1796                             phoenix::tag::catch_all
1797                           , proto::basic_default_domain
1798                         >(catch_)
1799                     );
1800             }
1801         };
1802 
1803 
1804 
1805 
1806 
1807 
1808 
1809         template <typename TryCatch, typename Exception, typename Expr>
1810         struct catch_push_back<TryCatch, Exception, Expr, 28>
1811         {
1812             typedef
1813                 typename proto::result_of::make_expr<
1814                     phoenix::tag::catch_
1815                   , proto::basic_default_domain
1816                   , catch_exception<Exception>
1817                   , Expr
1818                 >::type
1819                 catch_expr;
1820             typedef phoenix::expression::try_catch<
1821                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type
1822               , catch_expr> gen_type;
1823             typedef typename gen_type::type type;
1824             static type
makecatch_push_back1825             make(
1826                 TryCatch const& try_catch
1827               , Expr const& catch_
1828             )
1829             {
1830                 return
1831                     gen_type::make(
1832                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch) , proto::child_c< 27>(try_catch)
1833                       , proto::make_expr<
1834                             phoenix::tag::catch_
1835                           , proto::basic_default_domain
1836                         >(catch_exception<Exception>(), catch_)
1837                     );
1838             }
1839         };
1840 
1841         template <typename TryCatch, typename Expr>
1842         struct catch_all_push_back<TryCatch, Expr, 28>
1843         {
1844             typedef
1845                 typename proto::result_of::make_expr<
1846                     phoenix::tag::catch_all
1847                   , proto::basic_default_domain
1848                   , Expr
1849                 >::type
1850                 catch_expr;
1851             typedef phoenix::expression::try_catch<
1852                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type
1853               , catch_expr> gen_type;
1854             typedef typename gen_type::type type;
1855             static type
makecatch_all_push_back1856             make(
1857                 TryCatch const& try_catch
1858               , Expr const& catch_
1859             )
1860             {
1861                 return
1862                     gen_type::make(
1863                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch) , proto::child_c< 27>(try_catch)
1864                       , proto::make_expr<
1865                             phoenix::tag::catch_all
1866                           , proto::basic_default_domain
1867                         >(catch_)
1868                     );
1869             }
1870         };
1871 
1872 
1873 
1874 
1875 
1876 
1877 
1878         template <typename TryCatch, typename Exception, typename Expr>
1879         struct catch_push_back<TryCatch, Exception, Expr, 29>
1880         {
1881             typedef
1882                 typename proto::result_of::make_expr<
1883                     phoenix::tag::catch_
1884                   , proto::basic_default_domain
1885                   , catch_exception<Exception>
1886                   , Expr
1887                 >::type
1888                 catch_expr;
1889             typedef phoenix::expression::try_catch<
1890                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type
1891               , catch_expr> gen_type;
1892             typedef typename gen_type::type type;
1893             static type
makecatch_push_back1894             make(
1895                 TryCatch const& try_catch
1896               , Expr const& catch_
1897             )
1898             {
1899                 return
1900                     gen_type::make(
1901                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch) , proto::child_c< 27>(try_catch) , proto::child_c< 28>(try_catch)
1902                       , proto::make_expr<
1903                             phoenix::tag::catch_
1904                           , proto::basic_default_domain
1905                         >(catch_exception<Exception>(), catch_)
1906                     );
1907             }
1908         };
1909 
1910         template <typename TryCatch, typename Expr>
1911         struct catch_all_push_back<TryCatch, Expr, 29>
1912         {
1913             typedef
1914                 typename proto::result_of::make_expr<
1915                     phoenix::tag::catch_all
1916                   , proto::basic_default_domain
1917                   , Expr
1918                 >::type
1919                 catch_expr;
1920             typedef phoenix::expression::try_catch<
1921                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type
1922               , catch_expr> gen_type;
1923             typedef typename gen_type::type type;
1924             static type
makecatch_all_push_back1925             make(
1926                 TryCatch const& try_catch
1927               , Expr const& catch_
1928             )
1929             {
1930                 return
1931                     gen_type::make(
1932                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch) , proto::child_c< 27>(try_catch) , proto::child_c< 28>(try_catch)
1933                       , proto::make_expr<
1934                             phoenix::tag::catch_all
1935                           , proto::basic_default_domain
1936                         >(catch_)
1937                     );
1938             }
1939         };
1940 
1941 
1942 
1943 
1944 
1945 
1946 
1947         template <typename TryCatch, typename Exception, typename Expr>
1948         struct catch_push_back<TryCatch, Exception, Expr, 30>
1949         {
1950             typedef
1951                 typename proto::result_of::make_expr<
1952                     phoenix::tag::catch_
1953                   , proto::basic_default_domain
1954                   , catch_exception<Exception>
1955                   , Expr
1956                 >::type
1957                 catch_expr;
1958             typedef phoenix::expression::try_catch<
1959                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type
1960               , catch_expr> gen_type;
1961             typedef typename gen_type::type type;
1962             static type
makecatch_push_back1963             make(
1964                 TryCatch const& try_catch
1965               , Expr const& catch_
1966             )
1967             {
1968                 return
1969                     gen_type::make(
1970                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch) , proto::child_c< 27>(try_catch) , proto::child_c< 28>(try_catch) , proto::child_c< 29>(try_catch)
1971                       , proto::make_expr<
1972                             phoenix::tag::catch_
1973                           , proto::basic_default_domain
1974                         >(catch_exception<Exception>(), catch_)
1975                     );
1976             }
1977         };
1978 
1979         template <typename TryCatch, typename Expr>
1980         struct catch_all_push_back<TryCatch, Expr, 30>
1981         {
1982             typedef
1983                 typename proto::result_of::make_expr<
1984                     phoenix::tag::catch_all
1985                   , proto::basic_default_domain
1986                   , Expr
1987                 >::type
1988                 catch_expr;
1989             typedef phoenix::expression::try_catch<
1990                 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type
1991               , catch_expr> gen_type;
1992             typedef typename gen_type::type type;
1993             static type
makecatch_all_push_back1994             make(
1995                 TryCatch const& try_catch
1996               , Expr const& catch_
1997             )
1998             {
1999                 return
2000                     gen_type::make(
2001                         proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch) , proto::child_c< 27>(try_catch) , proto::child_c< 28>(try_catch) , proto::child_c< 29>(try_catch)
2002                       , proto::make_expr<
2003                             phoenix::tag::catch_all
2004                           , proto::basic_default_domain
2005                         >(catch_)
2006                     );
2007             }
2008         };
2009 
2010