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