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