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