catch_push_back_30.hpp 214 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937
  1. /*==============================================================================
  2. Copyright (c) 2005-2010 Joel de Guzman
  3. Copyright (c) 2010 Thomas Heller
  4. Distributed under the Boost Software License, Version 1.0. (See accompanying
  5. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6. ==============================================================================*/
  7. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  8. struct catch_push_back<TryCatch, Exception, Capture, Expr, 2>
  9. {
  10. typedef
  11. typename proto::result_of::make_expr<
  12. phoenix::tag::catch_
  13. , proto::basic_default_domain
  14. , catch_exception<Exception>
  15. , Capture
  16. , Expr
  17. >::type
  18. catch_expr;
  19. typedef phoenix::expression::try_catch<
  20. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type
  21. , catch_expr> gen_type;
  22. typedef typename gen_type::type type;
  23. static type
  24. make(
  25. TryCatch const& try_catch
  26. , Capture const& capture
  27. , Expr const& catch_
  28. )
  29. {
  30. return
  31. gen_type::make(
  32. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch)
  33. , proto::make_expr<
  34. phoenix::tag::catch_
  35. , proto::basic_default_domain
  36. >(catch_exception<Exception>(), capture, catch_)
  37. );
  38. }
  39. };
  40. template <typename TryCatch, typename Exception, typename Expr>
  41. struct catch_push_back<TryCatch, Exception, void, Expr, 2>
  42. {
  43. typedef
  44. typename proto::result_of::make_expr<
  45. phoenix::tag::catch_
  46. , proto::basic_default_domain
  47. , catch_exception<Exception>
  48. , Expr
  49. >::type
  50. catch_expr;
  51. typedef phoenix::expression::try_catch<
  52. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type
  53. , catch_expr> gen_type;
  54. typedef typename gen_type::type type;
  55. static type
  56. make(
  57. TryCatch const& try_catch
  58. , Expr const& catch_
  59. )
  60. {
  61. return
  62. gen_type::make(
  63. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch)
  64. , proto::make_expr<
  65. phoenix::tag::catch_
  66. , proto::basic_default_domain
  67. >(catch_exception<Exception>(), catch_)
  68. );
  69. }
  70. };
  71. template <typename TryCatch, typename Expr>
  72. struct catch_all_push_back<TryCatch, Expr, 2>
  73. {
  74. typedef
  75. typename proto::result_of::make_expr<
  76. phoenix::tag::catch_all
  77. , proto::basic_default_domain
  78. , Expr
  79. >::type
  80. catch_expr;
  81. typedef phoenix::expression::try_catch<
  82. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type
  83. , catch_expr> gen_type;
  84. typedef typename gen_type::type type;
  85. static type
  86. make(
  87. TryCatch const& try_catch
  88. , Expr const& catch_
  89. )
  90. {
  91. return
  92. gen_type::make(
  93. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch)
  94. , proto::make_expr<
  95. phoenix::tag::catch_all
  96. , proto::basic_default_domain
  97. >(catch_)
  98. );
  99. }
  100. };
  101. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  102. struct catch_push_back<TryCatch, Exception, Capture, Expr, 3>
  103. {
  104. typedef
  105. typename proto::result_of::make_expr<
  106. phoenix::tag::catch_
  107. , proto::basic_default_domain
  108. , catch_exception<Exception>
  109. , Capture
  110. , Expr
  111. >::type
  112. catch_expr;
  113. typedef phoenix::expression::try_catch<
  114. 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
  115. , catch_expr> gen_type;
  116. typedef typename gen_type::type type;
  117. static type
  118. make(
  119. TryCatch const& try_catch
  120. , Capture const& capture
  121. , Expr const& catch_
  122. )
  123. {
  124. return
  125. gen_type::make(
  126. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch)
  127. , proto::make_expr<
  128. phoenix::tag::catch_
  129. , proto::basic_default_domain
  130. >(catch_exception<Exception>(), capture, catch_)
  131. );
  132. }
  133. };
  134. template <typename TryCatch, typename Exception, typename Expr>
  135. struct catch_push_back<TryCatch, Exception, void, Expr, 3>
  136. {
  137. typedef
  138. typename proto::result_of::make_expr<
  139. phoenix::tag::catch_
  140. , proto::basic_default_domain
  141. , catch_exception<Exception>
  142. , Expr
  143. >::type
  144. catch_expr;
  145. typedef phoenix::expression::try_catch<
  146. 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
  147. , catch_expr> gen_type;
  148. typedef typename gen_type::type type;
  149. static type
  150. make(
  151. TryCatch const& try_catch
  152. , Expr const& catch_
  153. )
  154. {
  155. return
  156. gen_type::make(
  157. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch)
  158. , proto::make_expr<
  159. phoenix::tag::catch_
  160. , proto::basic_default_domain
  161. >(catch_exception<Exception>(), catch_)
  162. );
  163. }
  164. };
  165. template <typename TryCatch, typename Expr>
  166. struct catch_all_push_back<TryCatch, Expr, 3>
  167. {
  168. typedef
  169. typename proto::result_of::make_expr<
  170. phoenix::tag::catch_all
  171. , proto::basic_default_domain
  172. , Expr
  173. >::type
  174. catch_expr;
  175. typedef phoenix::expression::try_catch<
  176. 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
  177. , catch_expr> gen_type;
  178. typedef typename gen_type::type type;
  179. static type
  180. make(
  181. TryCatch const& try_catch
  182. , Expr const& catch_
  183. )
  184. {
  185. return
  186. gen_type::make(
  187. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch)
  188. , proto::make_expr<
  189. phoenix::tag::catch_all
  190. , proto::basic_default_domain
  191. >(catch_)
  192. );
  193. }
  194. };
  195. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  196. struct catch_push_back<TryCatch, Exception, Capture, Expr, 4>
  197. {
  198. typedef
  199. typename proto::result_of::make_expr<
  200. phoenix::tag::catch_
  201. , proto::basic_default_domain
  202. , catch_exception<Exception>
  203. , Capture
  204. , Expr
  205. >::type
  206. catch_expr;
  207. typedef phoenix::expression::try_catch<
  208. 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
  209. , catch_expr> gen_type;
  210. typedef typename gen_type::type type;
  211. static type
  212. make(
  213. TryCatch const& try_catch
  214. , Capture const& capture
  215. , Expr const& catch_
  216. )
  217. {
  218. return
  219. gen_type::make(
  220. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch)
  221. , proto::make_expr<
  222. phoenix::tag::catch_
  223. , proto::basic_default_domain
  224. >(catch_exception<Exception>(), capture, catch_)
  225. );
  226. }
  227. };
  228. template <typename TryCatch, typename Exception, typename Expr>
  229. struct catch_push_back<TryCatch, Exception, void, Expr, 4>
  230. {
  231. typedef
  232. typename proto::result_of::make_expr<
  233. phoenix::tag::catch_
  234. , proto::basic_default_domain
  235. , catch_exception<Exception>
  236. , Expr
  237. >::type
  238. catch_expr;
  239. typedef phoenix::expression::try_catch<
  240. 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
  241. , catch_expr> gen_type;
  242. typedef typename gen_type::type type;
  243. static type
  244. make(
  245. TryCatch const& try_catch
  246. , Expr const& catch_
  247. )
  248. {
  249. return
  250. gen_type::make(
  251. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch)
  252. , proto::make_expr<
  253. phoenix::tag::catch_
  254. , proto::basic_default_domain
  255. >(catch_exception<Exception>(), catch_)
  256. );
  257. }
  258. };
  259. template <typename TryCatch, typename Expr>
  260. struct catch_all_push_back<TryCatch, Expr, 4>
  261. {
  262. typedef
  263. typename proto::result_of::make_expr<
  264. phoenix::tag::catch_all
  265. , proto::basic_default_domain
  266. , Expr
  267. >::type
  268. catch_expr;
  269. typedef phoenix::expression::try_catch<
  270. 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
  271. , catch_expr> gen_type;
  272. typedef typename gen_type::type type;
  273. static type
  274. make(
  275. TryCatch const& try_catch
  276. , Expr const& catch_
  277. )
  278. {
  279. return
  280. gen_type::make(
  281. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch)
  282. , proto::make_expr<
  283. phoenix::tag::catch_all
  284. , proto::basic_default_domain
  285. >(catch_)
  286. );
  287. }
  288. };
  289. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  290. struct catch_push_back<TryCatch, Exception, Capture, Expr, 5>
  291. {
  292. typedef
  293. typename proto::result_of::make_expr<
  294. phoenix::tag::catch_
  295. , proto::basic_default_domain
  296. , catch_exception<Exception>
  297. , Capture
  298. , Expr
  299. >::type
  300. catch_expr;
  301. typedef phoenix::expression::try_catch<
  302. 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
  303. , catch_expr> gen_type;
  304. typedef typename gen_type::type type;
  305. static type
  306. make(
  307. TryCatch const& try_catch
  308. , Capture const& capture
  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)
  315. , proto::make_expr<
  316. phoenix::tag::catch_
  317. , proto::basic_default_domain
  318. >(catch_exception<Exception>(), capture, catch_)
  319. );
  320. }
  321. };
  322. template <typename TryCatch, typename Exception, typename Expr>
  323. struct catch_push_back<TryCatch, Exception, void, Expr, 5>
  324. {
  325. typedef
  326. typename proto::result_of::make_expr<
  327. phoenix::tag::catch_
  328. , proto::basic_default_domain
  329. , catch_exception<Exception>
  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
  335. , catch_expr> gen_type;
  336. typedef typename gen_type::type type;
  337. static type
  338. 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)
  346. , proto::make_expr<
  347. phoenix::tag::catch_
  348. , proto::basic_default_domain
  349. >(catch_exception<Exception>(), catch_)
  350. );
  351. }
  352. };
  353. template <typename TryCatch, typename Expr>
  354. struct catch_all_push_back<TryCatch, Expr, 5>
  355. {
  356. typedef
  357. typename proto::result_of::make_expr<
  358. phoenix::tag::catch_all
  359. , proto::basic_default_domain
  360. , Expr
  361. >::type
  362. catch_expr;
  363. typedef phoenix::expression::try_catch<
  364. 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
  365. , catch_expr> gen_type;
  366. typedef typename gen_type::type type;
  367. static type
  368. make(
  369. TryCatch const& try_catch
  370. , Expr const& catch_
  371. )
  372. {
  373. return
  374. gen_type::make(
  375. 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)
  376. , proto::make_expr<
  377. phoenix::tag::catch_all
  378. , proto::basic_default_domain
  379. >(catch_)
  380. );
  381. }
  382. };
  383. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  384. struct catch_push_back<TryCatch, Exception, Capture, Expr, 6>
  385. {
  386. typedef
  387. typename proto::result_of::make_expr<
  388. phoenix::tag::catch_
  389. , proto::basic_default_domain
  390. , catch_exception<Exception>
  391. , Capture
  392. , Expr
  393. >::type
  394. catch_expr;
  395. typedef phoenix::expression::try_catch<
  396. 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
  397. , catch_expr> gen_type;
  398. typedef typename gen_type::type type;
  399. static type
  400. make(
  401. TryCatch const& try_catch
  402. , Capture const& capture
  403. , Expr const& catch_
  404. )
  405. {
  406. return
  407. gen_type::make(
  408. 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)
  409. , proto::make_expr<
  410. phoenix::tag::catch_
  411. , proto::basic_default_domain
  412. >(catch_exception<Exception>(), capture, catch_)
  413. );
  414. }
  415. };
  416. template <typename TryCatch, typename Exception, typename Expr>
  417. struct catch_push_back<TryCatch, Exception, void, Expr, 6>
  418. {
  419. typedef
  420. typename proto::result_of::make_expr<
  421. phoenix::tag::catch_
  422. , proto::basic_default_domain
  423. , catch_exception<Exception>
  424. , Expr
  425. >::type
  426. catch_expr;
  427. typedef phoenix::expression::try_catch<
  428. 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
  429. , catch_expr> gen_type;
  430. typedef typename gen_type::type type;
  431. static type
  432. make(
  433. TryCatch const& try_catch
  434. , Expr const& catch_
  435. )
  436. {
  437. return
  438. gen_type::make(
  439. 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)
  440. , proto::make_expr<
  441. phoenix::tag::catch_
  442. , proto::basic_default_domain
  443. >(catch_exception<Exception>(), catch_)
  444. );
  445. }
  446. };
  447. template <typename TryCatch, typename Expr>
  448. struct catch_all_push_back<TryCatch, Expr, 6>
  449. {
  450. typedef
  451. typename proto::result_of::make_expr<
  452. phoenix::tag::catch_all
  453. , proto::basic_default_domain
  454. , Expr
  455. >::type
  456. catch_expr;
  457. typedef phoenix::expression::try_catch<
  458. 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
  459. , catch_expr> gen_type;
  460. typedef typename gen_type::type type;
  461. static type
  462. make(
  463. TryCatch const& try_catch
  464. , Expr const& catch_
  465. )
  466. {
  467. return
  468. gen_type::make(
  469. 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)
  470. , proto::make_expr<
  471. phoenix::tag::catch_all
  472. , proto::basic_default_domain
  473. >(catch_)
  474. );
  475. }
  476. };
  477. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  478. struct catch_push_back<TryCatch, Exception, Capture, Expr, 7>
  479. {
  480. typedef
  481. typename proto::result_of::make_expr<
  482. phoenix::tag::catch_
  483. , proto::basic_default_domain
  484. , catch_exception<Exception>
  485. , Capture
  486. , Expr
  487. >::type
  488. catch_expr;
  489. typedef phoenix::expression::try_catch<
  490. 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
  491. , catch_expr> gen_type;
  492. typedef typename gen_type::type type;
  493. static type
  494. make(
  495. TryCatch const& try_catch
  496. , Capture const& capture
  497. , Expr const& catch_
  498. )
  499. {
  500. return
  501. gen_type::make(
  502. 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)
  503. , proto::make_expr<
  504. phoenix::tag::catch_
  505. , proto::basic_default_domain
  506. >(catch_exception<Exception>(), capture, catch_)
  507. );
  508. }
  509. };
  510. template <typename TryCatch, typename Exception, typename Expr>
  511. struct catch_push_back<TryCatch, Exception, void, Expr, 7>
  512. {
  513. typedef
  514. typename proto::result_of::make_expr<
  515. phoenix::tag::catch_
  516. , proto::basic_default_domain
  517. , catch_exception<Exception>
  518. , Expr
  519. >::type
  520. catch_expr;
  521. typedef phoenix::expression::try_catch<
  522. 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
  523. , catch_expr> gen_type;
  524. typedef typename gen_type::type type;
  525. static type
  526. make(
  527. TryCatch const& try_catch
  528. , Expr const& catch_
  529. )
  530. {
  531. return
  532. gen_type::make(
  533. 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)
  534. , proto::make_expr<
  535. phoenix::tag::catch_
  536. , proto::basic_default_domain
  537. >(catch_exception<Exception>(), catch_)
  538. );
  539. }
  540. };
  541. template <typename TryCatch, typename Expr>
  542. struct catch_all_push_back<TryCatch, Expr, 7>
  543. {
  544. typedef
  545. typename proto::result_of::make_expr<
  546. phoenix::tag::catch_all
  547. , proto::basic_default_domain
  548. , Expr
  549. >::type
  550. catch_expr;
  551. typedef phoenix::expression::try_catch<
  552. 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
  553. , catch_expr> gen_type;
  554. typedef typename gen_type::type type;
  555. static type
  556. make(
  557. TryCatch const& try_catch
  558. , Expr const& catch_
  559. )
  560. {
  561. return
  562. gen_type::make(
  563. 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)
  564. , proto::make_expr<
  565. phoenix::tag::catch_all
  566. , proto::basic_default_domain
  567. >(catch_)
  568. );
  569. }
  570. };
  571. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  572. struct catch_push_back<TryCatch, Exception, Capture, Expr, 8>
  573. {
  574. typedef
  575. typename proto::result_of::make_expr<
  576. phoenix::tag::catch_
  577. , proto::basic_default_domain
  578. , catch_exception<Exception>
  579. , Capture
  580. , Expr
  581. >::type
  582. catch_expr;
  583. typedef phoenix::expression::try_catch<
  584. 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
  585. , catch_expr> gen_type;
  586. typedef typename gen_type::type type;
  587. static type
  588. make(
  589. TryCatch const& try_catch
  590. , Capture const& capture
  591. , Expr const& catch_
  592. )
  593. {
  594. return
  595. gen_type::make(
  596. 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)
  597. , proto::make_expr<
  598. phoenix::tag::catch_
  599. , proto::basic_default_domain
  600. >(catch_exception<Exception>(), capture, catch_)
  601. );
  602. }
  603. };
  604. template <typename TryCatch, typename Exception, typename Expr>
  605. struct catch_push_back<TryCatch, Exception, void, Expr, 8>
  606. {
  607. typedef
  608. typename proto::result_of::make_expr<
  609. phoenix::tag::catch_
  610. , proto::basic_default_domain
  611. , catch_exception<Exception>
  612. , Expr
  613. >::type
  614. catch_expr;
  615. typedef phoenix::expression::try_catch<
  616. 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
  617. , catch_expr> gen_type;
  618. typedef typename gen_type::type type;
  619. static type
  620. make(
  621. TryCatch const& try_catch
  622. , Expr const& catch_
  623. )
  624. {
  625. return
  626. gen_type::make(
  627. 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)
  628. , proto::make_expr<
  629. phoenix::tag::catch_
  630. , proto::basic_default_domain
  631. >(catch_exception<Exception>(), catch_)
  632. );
  633. }
  634. };
  635. template <typename TryCatch, typename Expr>
  636. struct catch_all_push_back<TryCatch, Expr, 8>
  637. {
  638. typedef
  639. typename proto::result_of::make_expr<
  640. phoenix::tag::catch_all
  641. , proto::basic_default_domain
  642. , Expr
  643. >::type
  644. catch_expr;
  645. typedef phoenix::expression::try_catch<
  646. 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
  647. , catch_expr> gen_type;
  648. typedef typename gen_type::type type;
  649. static type
  650. make(
  651. TryCatch const& try_catch
  652. , Expr const& catch_
  653. )
  654. {
  655. return
  656. gen_type::make(
  657. 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)
  658. , proto::make_expr<
  659. phoenix::tag::catch_all
  660. , proto::basic_default_domain
  661. >(catch_)
  662. );
  663. }
  664. };
  665. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  666. struct catch_push_back<TryCatch, Exception, Capture, Expr, 9>
  667. {
  668. typedef
  669. typename proto::result_of::make_expr<
  670. phoenix::tag::catch_
  671. , proto::basic_default_domain
  672. , catch_exception<Exception>
  673. , Capture
  674. , Expr
  675. >::type
  676. catch_expr;
  677. typedef phoenix::expression::try_catch<
  678. 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
  679. , catch_expr> gen_type;
  680. typedef typename gen_type::type type;
  681. static type
  682. make(
  683. TryCatch const& try_catch
  684. , Capture const& capture
  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)
  691. , proto::make_expr<
  692. phoenix::tag::catch_
  693. , proto::basic_default_domain
  694. >(catch_exception<Exception>(), capture, catch_)
  695. );
  696. }
  697. };
  698. template <typename TryCatch, typename Exception, typename Expr>
  699. struct catch_push_back<TryCatch, Exception, void, Expr, 9>
  700. {
  701. typedef
  702. typename proto::result_of::make_expr<
  703. phoenix::tag::catch_
  704. , proto::basic_default_domain
  705. , catch_exception<Exception>
  706. , Expr
  707. >::type
  708. catch_expr;
  709. typedef phoenix::expression::try_catch<
  710. 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
  711. , catch_expr> gen_type;
  712. typedef typename gen_type::type type;
  713. static type
  714. make(
  715. TryCatch const& try_catch
  716. , Expr const& catch_
  717. )
  718. {
  719. return
  720. gen_type::make(
  721. 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)
  722. , proto::make_expr<
  723. phoenix::tag::catch_
  724. , proto::basic_default_domain
  725. >(catch_exception<Exception>(), catch_)
  726. );
  727. }
  728. };
  729. template <typename TryCatch, typename Expr>
  730. struct catch_all_push_back<TryCatch, Expr, 9>
  731. {
  732. typedef
  733. typename proto::result_of::make_expr<
  734. phoenix::tag::catch_all
  735. , proto::basic_default_domain
  736. , Expr
  737. >::type
  738. catch_expr;
  739. typedef phoenix::expression::try_catch<
  740. 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
  741. , catch_expr> gen_type;
  742. typedef typename gen_type::type type;
  743. static type
  744. make(
  745. TryCatch const& try_catch
  746. , Expr const& catch_
  747. )
  748. {
  749. return
  750. gen_type::make(
  751. 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)
  752. , proto::make_expr<
  753. phoenix::tag::catch_all
  754. , proto::basic_default_domain
  755. >(catch_)
  756. );
  757. }
  758. };
  759. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  760. struct catch_push_back<TryCatch, Exception, Capture, Expr, 10>
  761. {
  762. typedef
  763. typename proto::result_of::make_expr<
  764. phoenix::tag::catch_
  765. , proto::basic_default_domain
  766. , catch_exception<Exception>
  767. , Capture
  768. , Expr
  769. >::type
  770. catch_expr;
  771. typedef phoenix::expression::try_catch<
  772. 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
  773. , catch_expr> gen_type;
  774. typedef typename gen_type::type type;
  775. static type
  776. make(
  777. TryCatch const& try_catch
  778. , Capture const& capture
  779. , Expr const& catch_
  780. )
  781. {
  782. return
  783. gen_type::make(
  784. 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)
  785. , proto::make_expr<
  786. phoenix::tag::catch_
  787. , proto::basic_default_domain
  788. >(catch_exception<Exception>(), capture, catch_)
  789. );
  790. }
  791. };
  792. template <typename TryCatch, typename Exception, typename Expr>
  793. struct catch_push_back<TryCatch, Exception, void, Expr, 10>
  794. {
  795. typedef
  796. typename proto::result_of::make_expr<
  797. phoenix::tag::catch_
  798. , proto::basic_default_domain
  799. , catch_exception<Exception>
  800. , Expr
  801. >::type
  802. catch_expr;
  803. typedef phoenix::expression::try_catch<
  804. 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
  805. , catch_expr> gen_type;
  806. typedef typename gen_type::type type;
  807. static type
  808. make(
  809. TryCatch const& try_catch
  810. , Expr const& catch_
  811. )
  812. {
  813. return
  814. gen_type::make(
  815. 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)
  816. , proto::make_expr<
  817. phoenix::tag::catch_
  818. , proto::basic_default_domain
  819. >(catch_exception<Exception>(), catch_)
  820. );
  821. }
  822. };
  823. template <typename TryCatch, typename Expr>
  824. struct catch_all_push_back<TryCatch, Expr, 10>
  825. {
  826. typedef
  827. typename proto::result_of::make_expr<
  828. phoenix::tag::catch_all
  829. , proto::basic_default_domain
  830. , Expr
  831. >::type
  832. catch_expr;
  833. typedef phoenix::expression::try_catch<
  834. 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
  835. , catch_expr> gen_type;
  836. typedef typename gen_type::type type;
  837. static type
  838. make(
  839. TryCatch const& try_catch
  840. , Expr const& catch_
  841. )
  842. {
  843. return
  844. gen_type::make(
  845. 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)
  846. , proto::make_expr<
  847. phoenix::tag::catch_all
  848. , proto::basic_default_domain
  849. >(catch_)
  850. );
  851. }
  852. };
  853. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  854. struct catch_push_back<TryCatch, Exception, Capture, Expr, 11>
  855. {
  856. typedef
  857. typename proto::result_of::make_expr<
  858. phoenix::tag::catch_
  859. , proto::basic_default_domain
  860. , catch_exception<Exception>
  861. , Capture
  862. , Expr
  863. >::type
  864. catch_expr;
  865. typedef phoenix::expression::try_catch<
  866. 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
  867. , catch_expr> gen_type;
  868. typedef typename gen_type::type type;
  869. static type
  870. make(
  871. TryCatch const& try_catch
  872. , Capture const& capture
  873. , Expr const& catch_
  874. )
  875. {
  876. return
  877. gen_type::make(
  878. 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)
  879. , proto::make_expr<
  880. phoenix::tag::catch_
  881. , proto::basic_default_domain
  882. >(catch_exception<Exception>(), capture, catch_)
  883. );
  884. }
  885. };
  886. template <typename TryCatch, typename Exception, typename Expr>
  887. struct catch_push_back<TryCatch, Exception, void, Expr, 11>
  888. {
  889. typedef
  890. typename proto::result_of::make_expr<
  891. phoenix::tag::catch_
  892. , proto::basic_default_domain
  893. , catch_exception<Exception>
  894. , Expr
  895. >::type
  896. catch_expr;
  897. typedef phoenix::expression::try_catch<
  898. 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
  899. , catch_expr> gen_type;
  900. typedef typename gen_type::type type;
  901. static type
  902. make(
  903. TryCatch const& try_catch
  904. , Expr const& catch_
  905. )
  906. {
  907. return
  908. gen_type::make(
  909. 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)
  910. , proto::make_expr<
  911. phoenix::tag::catch_
  912. , proto::basic_default_domain
  913. >(catch_exception<Exception>(), catch_)
  914. );
  915. }
  916. };
  917. template <typename TryCatch, typename Expr>
  918. struct catch_all_push_back<TryCatch, Expr, 11>
  919. {
  920. typedef
  921. typename proto::result_of::make_expr<
  922. phoenix::tag::catch_all
  923. , proto::basic_default_domain
  924. , Expr
  925. >::type
  926. catch_expr;
  927. typedef phoenix::expression::try_catch<
  928. 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
  929. , catch_expr> gen_type;
  930. typedef typename gen_type::type type;
  931. static type
  932. make(
  933. TryCatch const& try_catch
  934. , Expr const& catch_
  935. )
  936. {
  937. return
  938. gen_type::make(
  939. 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)
  940. , proto::make_expr<
  941. phoenix::tag::catch_all
  942. , proto::basic_default_domain
  943. >(catch_)
  944. );
  945. }
  946. };
  947. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  948. struct catch_push_back<TryCatch, Exception, Capture, Expr, 12>
  949. {
  950. typedef
  951. typename proto::result_of::make_expr<
  952. phoenix::tag::catch_
  953. , proto::basic_default_domain
  954. , catch_exception<Exception>
  955. , Capture
  956. , Expr
  957. >::type
  958. catch_expr;
  959. typedef phoenix::expression::try_catch<
  960. 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
  961. , catch_expr> gen_type;
  962. typedef typename gen_type::type type;
  963. static type
  964. make(
  965. TryCatch const& try_catch
  966. , Capture const& capture
  967. , Expr const& catch_
  968. )
  969. {
  970. return
  971. gen_type::make(
  972. 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)
  973. , proto::make_expr<
  974. phoenix::tag::catch_
  975. , proto::basic_default_domain
  976. >(catch_exception<Exception>(), capture, catch_)
  977. );
  978. }
  979. };
  980. template <typename TryCatch, typename Exception, typename Expr>
  981. struct catch_push_back<TryCatch, Exception, void, Expr, 12>
  982. {
  983. typedef
  984. typename proto::result_of::make_expr<
  985. phoenix::tag::catch_
  986. , proto::basic_default_domain
  987. , catch_exception<Exception>
  988. , Expr
  989. >::type
  990. catch_expr;
  991. typedef phoenix::expression::try_catch<
  992. 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
  993. , catch_expr> gen_type;
  994. typedef typename gen_type::type type;
  995. static type
  996. make(
  997. TryCatch const& try_catch
  998. , Expr const& catch_
  999. )
  1000. {
  1001. return
  1002. gen_type::make(
  1003. 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)
  1004. , proto::make_expr<
  1005. phoenix::tag::catch_
  1006. , proto::basic_default_domain
  1007. >(catch_exception<Exception>(), catch_)
  1008. );
  1009. }
  1010. };
  1011. template <typename TryCatch, typename Expr>
  1012. struct catch_all_push_back<TryCatch, Expr, 12>
  1013. {
  1014. typedef
  1015. typename proto::result_of::make_expr<
  1016. phoenix::tag::catch_all
  1017. , proto::basic_default_domain
  1018. , Expr
  1019. >::type
  1020. catch_expr;
  1021. typedef phoenix::expression::try_catch<
  1022. 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
  1023. , catch_expr> gen_type;
  1024. typedef typename gen_type::type type;
  1025. static type
  1026. make(
  1027. TryCatch const& try_catch
  1028. , Expr const& catch_
  1029. )
  1030. {
  1031. return
  1032. gen_type::make(
  1033. 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)
  1034. , proto::make_expr<
  1035. phoenix::tag::catch_all
  1036. , proto::basic_default_domain
  1037. >(catch_)
  1038. );
  1039. }
  1040. };
  1041. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  1042. struct catch_push_back<TryCatch, Exception, Capture, Expr, 13>
  1043. {
  1044. typedef
  1045. typename proto::result_of::make_expr<
  1046. phoenix::tag::catch_
  1047. , proto::basic_default_domain
  1048. , catch_exception<Exception>
  1049. , Capture
  1050. , Expr
  1051. >::type
  1052. catch_expr;
  1053. typedef phoenix::expression::try_catch<
  1054. 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
  1055. , catch_expr> gen_type;
  1056. typedef typename gen_type::type type;
  1057. static type
  1058. make(
  1059. TryCatch const& try_catch
  1060. , Capture const& capture
  1061. , Expr const& catch_
  1062. )
  1063. {
  1064. return
  1065. gen_type::make(
  1066. 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)
  1067. , proto::make_expr<
  1068. phoenix::tag::catch_
  1069. , proto::basic_default_domain
  1070. >(catch_exception<Exception>(), capture, catch_)
  1071. );
  1072. }
  1073. };
  1074. template <typename TryCatch, typename Exception, typename Expr>
  1075. struct catch_push_back<TryCatch, Exception, void, Expr, 13>
  1076. {
  1077. typedef
  1078. typename proto::result_of::make_expr<
  1079. phoenix::tag::catch_
  1080. , proto::basic_default_domain
  1081. , catch_exception<Exception>
  1082. , Expr
  1083. >::type
  1084. catch_expr;
  1085. typedef phoenix::expression::try_catch<
  1086. 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
  1087. , catch_expr> gen_type;
  1088. typedef typename gen_type::type type;
  1089. static type
  1090. make(
  1091. TryCatch const& try_catch
  1092. , Expr const& catch_
  1093. )
  1094. {
  1095. return
  1096. gen_type::make(
  1097. 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)
  1098. , proto::make_expr<
  1099. phoenix::tag::catch_
  1100. , proto::basic_default_domain
  1101. >(catch_exception<Exception>(), catch_)
  1102. );
  1103. }
  1104. };
  1105. template <typename TryCatch, typename Expr>
  1106. struct catch_all_push_back<TryCatch, Expr, 13>
  1107. {
  1108. typedef
  1109. typename proto::result_of::make_expr<
  1110. phoenix::tag::catch_all
  1111. , proto::basic_default_domain
  1112. , Expr
  1113. >::type
  1114. catch_expr;
  1115. typedef phoenix::expression::try_catch<
  1116. 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
  1117. , catch_expr> gen_type;
  1118. typedef typename gen_type::type type;
  1119. static type
  1120. make(
  1121. TryCatch const& try_catch
  1122. , Expr const& catch_
  1123. )
  1124. {
  1125. return
  1126. gen_type::make(
  1127. 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)
  1128. , proto::make_expr<
  1129. phoenix::tag::catch_all
  1130. , proto::basic_default_domain
  1131. >(catch_)
  1132. );
  1133. }
  1134. };
  1135. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  1136. struct catch_push_back<TryCatch, Exception, Capture, Expr, 14>
  1137. {
  1138. typedef
  1139. typename proto::result_of::make_expr<
  1140. phoenix::tag::catch_
  1141. , proto::basic_default_domain
  1142. , catch_exception<Exception>
  1143. , Capture
  1144. , Expr
  1145. >::type
  1146. catch_expr;
  1147. typedef phoenix::expression::try_catch<
  1148. 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
  1149. , catch_expr> gen_type;
  1150. typedef typename gen_type::type type;
  1151. static type
  1152. make(
  1153. TryCatch const& try_catch
  1154. , Capture const& capture
  1155. , Expr const& catch_
  1156. )
  1157. {
  1158. return
  1159. gen_type::make(
  1160. 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)
  1161. , proto::make_expr<
  1162. phoenix::tag::catch_
  1163. , proto::basic_default_domain
  1164. >(catch_exception<Exception>(), capture, catch_)
  1165. );
  1166. }
  1167. };
  1168. template <typename TryCatch, typename Exception, typename Expr>
  1169. struct catch_push_back<TryCatch, Exception, void, Expr, 14>
  1170. {
  1171. typedef
  1172. typename proto::result_of::make_expr<
  1173. phoenix::tag::catch_
  1174. , proto::basic_default_domain
  1175. , catch_exception<Exception>
  1176. , Expr
  1177. >::type
  1178. catch_expr;
  1179. typedef phoenix::expression::try_catch<
  1180. 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
  1181. , catch_expr> gen_type;
  1182. typedef typename gen_type::type type;
  1183. static type
  1184. make(
  1185. TryCatch const& try_catch
  1186. , Expr const& catch_
  1187. )
  1188. {
  1189. return
  1190. gen_type::make(
  1191. 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)
  1192. , proto::make_expr<
  1193. phoenix::tag::catch_
  1194. , proto::basic_default_domain
  1195. >(catch_exception<Exception>(), catch_)
  1196. );
  1197. }
  1198. };
  1199. template <typename TryCatch, typename Expr>
  1200. struct catch_all_push_back<TryCatch, Expr, 14>
  1201. {
  1202. typedef
  1203. typename proto::result_of::make_expr<
  1204. phoenix::tag::catch_all
  1205. , proto::basic_default_domain
  1206. , Expr
  1207. >::type
  1208. catch_expr;
  1209. typedef phoenix::expression::try_catch<
  1210. 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
  1211. , catch_expr> gen_type;
  1212. typedef typename gen_type::type type;
  1213. static type
  1214. make(
  1215. TryCatch const& try_catch
  1216. , Expr const& catch_
  1217. )
  1218. {
  1219. return
  1220. gen_type::make(
  1221. 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)
  1222. , proto::make_expr<
  1223. phoenix::tag::catch_all
  1224. , proto::basic_default_domain
  1225. >(catch_)
  1226. );
  1227. }
  1228. };
  1229. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  1230. struct catch_push_back<TryCatch, Exception, Capture, Expr, 15>
  1231. {
  1232. typedef
  1233. typename proto::result_of::make_expr<
  1234. phoenix::tag::catch_
  1235. , proto::basic_default_domain
  1236. , catch_exception<Exception>
  1237. , Capture
  1238. , Expr
  1239. >::type
  1240. catch_expr;
  1241. typedef phoenix::expression::try_catch<
  1242. 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
  1243. , catch_expr> gen_type;
  1244. typedef typename gen_type::type type;
  1245. static type
  1246. make(
  1247. TryCatch const& try_catch
  1248. , Capture const& capture
  1249. , Expr const& catch_
  1250. )
  1251. {
  1252. return
  1253. gen_type::make(
  1254. 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)
  1255. , proto::make_expr<
  1256. phoenix::tag::catch_
  1257. , proto::basic_default_domain
  1258. >(catch_exception<Exception>(), capture, catch_)
  1259. );
  1260. }
  1261. };
  1262. template <typename TryCatch, typename Exception, typename Expr>
  1263. struct catch_push_back<TryCatch, Exception, void, Expr, 15>
  1264. {
  1265. typedef
  1266. typename proto::result_of::make_expr<
  1267. phoenix::tag::catch_
  1268. , proto::basic_default_domain
  1269. , catch_exception<Exception>
  1270. , Expr
  1271. >::type
  1272. catch_expr;
  1273. typedef phoenix::expression::try_catch<
  1274. 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
  1275. , catch_expr> gen_type;
  1276. typedef typename gen_type::type type;
  1277. static type
  1278. make(
  1279. TryCatch const& try_catch
  1280. , Expr const& catch_
  1281. )
  1282. {
  1283. return
  1284. gen_type::make(
  1285. 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)
  1286. , proto::make_expr<
  1287. phoenix::tag::catch_
  1288. , proto::basic_default_domain
  1289. >(catch_exception<Exception>(), catch_)
  1290. );
  1291. }
  1292. };
  1293. template <typename TryCatch, typename Expr>
  1294. struct catch_all_push_back<TryCatch, Expr, 15>
  1295. {
  1296. typedef
  1297. typename proto::result_of::make_expr<
  1298. phoenix::tag::catch_all
  1299. , proto::basic_default_domain
  1300. , Expr
  1301. >::type
  1302. catch_expr;
  1303. typedef phoenix::expression::try_catch<
  1304. 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
  1305. , catch_expr> gen_type;
  1306. typedef typename gen_type::type type;
  1307. static type
  1308. make(
  1309. TryCatch const& try_catch
  1310. , Expr const& catch_
  1311. )
  1312. {
  1313. return
  1314. gen_type::make(
  1315. 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)
  1316. , proto::make_expr<
  1317. phoenix::tag::catch_all
  1318. , proto::basic_default_domain
  1319. >(catch_)
  1320. );
  1321. }
  1322. };
  1323. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  1324. struct catch_push_back<TryCatch, Exception, Capture, Expr, 16>
  1325. {
  1326. typedef
  1327. typename proto::result_of::make_expr<
  1328. phoenix::tag::catch_
  1329. , proto::basic_default_domain
  1330. , catch_exception<Exception>
  1331. , Capture
  1332. , Expr
  1333. >::type
  1334. catch_expr;
  1335. typedef phoenix::expression::try_catch<
  1336. 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
  1337. , catch_expr> gen_type;
  1338. typedef typename gen_type::type type;
  1339. static type
  1340. make(
  1341. TryCatch const& try_catch
  1342. , Capture const& capture
  1343. , Expr const& catch_
  1344. )
  1345. {
  1346. return
  1347. gen_type::make(
  1348. 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)
  1349. , proto::make_expr<
  1350. phoenix::tag::catch_
  1351. , proto::basic_default_domain
  1352. >(catch_exception<Exception>(), capture, catch_)
  1353. );
  1354. }
  1355. };
  1356. template <typename TryCatch, typename Exception, typename Expr>
  1357. struct catch_push_back<TryCatch, Exception, void, Expr, 16>
  1358. {
  1359. typedef
  1360. typename proto::result_of::make_expr<
  1361. phoenix::tag::catch_
  1362. , proto::basic_default_domain
  1363. , catch_exception<Exception>
  1364. , Expr
  1365. >::type
  1366. catch_expr;
  1367. typedef phoenix::expression::try_catch<
  1368. 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
  1369. , catch_expr> gen_type;
  1370. typedef typename gen_type::type type;
  1371. static type
  1372. make(
  1373. TryCatch const& try_catch
  1374. , Expr const& catch_
  1375. )
  1376. {
  1377. return
  1378. gen_type::make(
  1379. 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)
  1380. , proto::make_expr<
  1381. phoenix::tag::catch_
  1382. , proto::basic_default_domain
  1383. >(catch_exception<Exception>(), catch_)
  1384. );
  1385. }
  1386. };
  1387. template <typename TryCatch, typename Expr>
  1388. struct catch_all_push_back<TryCatch, Expr, 16>
  1389. {
  1390. typedef
  1391. typename proto::result_of::make_expr<
  1392. phoenix::tag::catch_all
  1393. , proto::basic_default_domain
  1394. , Expr
  1395. >::type
  1396. catch_expr;
  1397. typedef phoenix::expression::try_catch<
  1398. 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
  1399. , catch_expr> gen_type;
  1400. typedef typename gen_type::type type;
  1401. static type
  1402. make(
  1403. TryCatch const& try_catch
  1404. , Expr const& catch_
  1405. )
  1406. {
  1407. return
  1408. gen_type::make(
  1409. 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)
  1410. , proto::make_expr<
  1411. phoenix::tag::catch_all
  1412. , proto::basic_default_domain
  1413. >(catch_)
  1414. );
  1415. }
  1416. };
  1417. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  1418. struct catch_push_back<TryCatch, Exception, Capture, Expr, 17>
  1419. {
  1420. typedef
  1421. typename proto::result_of::make_expr<
  1422. phoenix::tag::catch_
  1423. , proto::basic_default_domain
  1424. , catch_exception<Exception>
  1425. , Capture
  1426. , Expr
  1427. >::type
  1428. catch_expr;
  1429. typedef phoenix::expression::try_catch<
  1430. 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
  1431. , catch_expr> gen_type;
  1432. typedef typename gen_type::type type;
  1433. static type
  1434. make(
  1435. TryCatch const& try_catch
  1436. , Capture const& capture
  1437. , Expr const& catch_
  1438. )
  1439. {
  1440. return
  1441. gen_type::make(
  1442. 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)
  1443. , proto::make_expr<
  1444. phoenix::tag::catch_
  1445. , proto::basic_default_domain
  1446. >(catch_exception<Exception>(), capture, catch_)
  1447. );
  1448. }
  1449. };
  1450. template <typename TryCatch, typename Exception, typename Expr>
  1451. struct catch_push_back<TryCatch, Exception, void, Expr, 17>
  1452. {
  1453. typedef
  1454. typename proto::result_of::make_expr<
  1455. phoenix::tag::catch_
  1456. , proto::basic_default_domain
  1457. , catch_exception<Exception>
  1458. , Expr
  1459. >::type
  1460. catch_expr;
  1461. typedef phoenix::expression::try_catch<
  1462. 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
  1463. , catch_expr> gen_type;
  1464. typedef typename gen_type::type type;
  1465. static type
  1466. make(
  1467. TryCatch const& try_catch
  1468. , Expr const& catch_
  1469. )
  1470. {
  1471. return
  1472. gen_type::make(
  1473. 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)
  1474. , proto::make_expr<
  1475. phoenix::tag::catch_
  1476. , proto::basic_default_domain
  1477. >(catch_exception<Exception>(), catch_)
  1478. );
  1479. }
  1480. };
  1481. template <typename TryCatch, typename Expr>
  1482. struct catch_all_push_back<TryCatch, Expr, 17>
  1483. {
  1484. typedef
  1485. typename proto::result_of::make_expr<
  1486. phoenix::tag::catch_all
  1487. , proto::basic_default_domain
  1488. , Expr
  1489. >::type
  1490. catch_expr;
  1491. typedef phoenix::expression::try_catch<
  1492. 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
  1493. , catch_expr> gen_type;
  1494. typedef typename gen_type::type type;
  1495. static type
  1496. make(
  1497. TryCatch const& try_catch
  1498. , Expr const& catch_
  1499. )
  1500. {
  1501. return
  1502. gen_type::make(
  1503. 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)
  1504. , proto::make_expr<
  1505. phoenix::tag::catch_all
  1506. , proto::basic_default_domain
  1507. >(catch_)
  1508. );
  1509. }
  1510. };
  1511. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  1512. struct catch_push_back<TryCatch, Exception, Capture, Expr, 18>
  1513. {
  1514. typedef
  1515. typename proto::result_of::make_expr<
  1516. phoenix::tag::catch_
  1517. , proto::basic_default_domain
  1518. , catch_exception<Exception>
  1519. , Capture
  1520. , Expr
  1521. >::type
  1522. catch_expr;
  1523. typedef phoenix::expression::try_catch<
  1524. 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
  1525. , catch_expr> gen_type;
  1526. typedef typename gen_type::type type;
  1527. static type
  1528. make(
  1529. TryCatch const& try_catch
  1530. , Capture const& capture
  1531. , Expr const& catch_
  1532. )
  1533. {
  1534. return
  1535. gen_type::make(
  1536. 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)
  1537. , proto::make_expr<
  1538. phoenix::tag::catch_
  1539. , proto::basic_default_domain
  1540. >(catch_exception<Exception>(), capture, catch_)
  1541. );
  1542. }
  1543. };
  1544. template <typename TryCatch, typename Exception, typename Expr>
  1545. struct catch_push_back<TryCatch, Exception, void, Expr, 18>
  1546. {
  1547. typedef
  1548. typename proto::result_of::make_expr<
  1549. phoenix::tag::catch_
  1550. , proto::basic_default_domain
  1551. , catch_exception<Exception>
  1552. , Expr
  1553. >::type
  1554. catch_expr;
  1555. typedef phoenix::expression::try_catch<
  1556. 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
  1557. , catch_expr> gen_type;
  1558. typedef typename gen_type::type type;
  1559. static type
  1560. make(
  1561. TryCatch const& try_catch
  1562. , Expr const& catch_
  1563. )
  1564. {
  1565. return
  1566. gen_type::make(
  1567. 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)
  1568. , proto::make_expr<
  1569. phoenix::tag::catch_
  1570. , proto::basic_default_domain
  1571. >(catch_exception<Exception>(), catch_)
  1572. );
  1573. }
  1574. };
  1575. template <typename TryCatch, typename Expr>
  1576. struct catch_all_push_back<TryCatch, Expr, 18>
  1577. {
  1578. typedef
  1579. typename proto::result_of::make_expr<
  1580. phoenix::tag::catch_all
  1581. , proto::basic_default_domain
  1582. , Expr
  1583. >::type
  1584. catch_expr;
  1585. typedef phoenix::expression::try_catch<
  1586. 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
  1587. , catch_expr> gen_type;
  1588. typedef typename gen_type::type type;
  1589. static type
  1590. make(
  1591. TryCatch const& try_catch
  1592. , Expr const& catch_
  1593. )
  1594. {
  1595. return
  1596. gen_type::make(
  1597. 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)
  1598. , proto::make_expr<
  1599. phoenix::tag::catch_all
  1600. , proto::basic_default_domain
  1601. >(catch_)
  1602. );
  1603. }
  1604. };
  1605. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  1606. struct catch_push_back<TryCatch, Exception, Capture, Expr, 19>
  1607. {
  1608. typedef
  1609. typename proto::result_of::make_expr<
  1610. phoenix::tag::catch_
  1611. , proto::basic_default_domain
  1612. , catch_exception<Exception>
  1613. , Capture
  1614. , Expr
  1615. >::type
  1616. catch_expr;
  1617. typedef phoenix::expression::try_catch<
  1618. 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
  1619. , catch_expr> gen_type;
  1620. typedef typename gen_type::type type;
  1621. static type
  1622. make(
  1623. TryCatch const& try_catch
  1624. , Capture const& capture
  1625. , Expr const& catch_
  1626. )
  1627. {
  1628. return
  1629. gen_type::make(
  1630. 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)
  1631. , proto::make_expr<
  1632. phoenix::tag::catch_
  1633. , proto::basic_default_domain
  1634. >(catch_exception<Exception>(), capture, catch_)
  1635. );
  1636. }
  1637. };
  1638. template <typename TryCatch, typename Exception, typename Expr>
  1639. struct catch_push_back<TryCatch, Exception, void, Expr, 19>
  1640. {
  1641. typedef
  1642. typename proto::result_of::make_expr<
  1643. phoenix::tag::catch_
  1644. , proto::basic_default_domain
  1645. , catch_exception<Exception>
  1646. , Expr
  1647. >::type
  1648. catch_expr;
  1649. typedef phoenix::expression::try_catch<
  1650. 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
  1651. , catch_expr> gen_type;
  1652. typedef typename gen_type::type type;
  1653. static type
  1654. make(
  1655. TryCatch const& try_catch
  1656. , Expr const& catch_
  1657. )
  1658. {
  1659. return
  1660. gen_type::make(
  1661. 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)
  1662. , proto::make_expr<
  1663. phoenix::tag::catch_
  1664. , proto::basic_default_domain
  1665. >(catch_exception<Exception>(), catch_)
  1666. );
  1667. }
  1668. };
  1669. template <typename TryCatch, typename Expr>
  1670. struct catch_all_push_back<TryCatch, Expr, 19>
  1671. {
  1672. typedef
  1673. typename proto::result_of::make_expr<
  1674. phoenix::tag::catch_all
  1675. , proto::basic_default_domain
  1676. , Expr
  1677. >::type
  1678. catch_expr;
  1679. typedef phoenix::expression::try_catch<
  1680. 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
  1681. , catch_expr> gen_type;
  1682. typedef typename gen_type::type type;
  1683. static type
  1684. make(
  1685. TryCatch const& try_catch
  1686. , Expr const& catch_
  1687. )
  1688. {
  1689. return
  1690. gen_type::make(
  1691. 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)
  1692. , proto::make_expr<
  1693. phoenix::tag::catch_all
  1694. , proto::basic_default_domain
  1695. >(catch_)
  1696. );
  1697. }
  1698. };
  1699. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  1700. struct catch_push_back<TryCatch, Exception, Capture, Expr, 20>
  1701. {
  1702. typedef
  1703. typename proto::result_of::make_expr<
  1704. phoenix::tag::catch_
  1705. , proto::basic_default_domain
  1706. , catch_exception<Exception>
  1707. , Capture
  1708. , Expr
  1709. >::type
  1710. catch_expr;
  1711. typedef phoenix::expression::try_catch<
  1712. 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
  1713. , catch_expr> gen_type;
  1714. typedef typename gen_type::type type;
  1715. static type
  1716. make(
  1717. TryCatch const& try_catch
  1718. , Capture const& capture
  1719. , Expr const& catch_
  1720. )
  1721. {
  1722. return
  1723. gen_type::make(
  1724. 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)
  1725. , proto::make_expr<
  1726. phoenix::tag::catch_
  1727. , proto::basic_default_domain
  1728. >(catch_exception<Exception>(), capture, catch_)
  1729. );
  1730. }
  1731. };
  1732. template <typename TryCatch, typename Exception, typename Expr>
  1733. struct catch_push_back<TryCatch, Exception, void, Expr, 20>
  1734. {
  1735. typedef
  1736. typename proto::result_of::make_expr<
  1737. phoenix::tag::catch_
  1738. , proto::basic_default_domain
  1739. , catch_exception<Exception>
  1740. , Expr
  1741. >::type
  1742. catch_expr;
  1743. typedef phoenix::expression::try_catch<
  1744. 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
  1745. , catch_expr> gen_type;
  1746. typedef typename gen_type::type type;
  1747. static type
  1748. make(
  1749. TryCatch const& try_catch
  1750. , Expr const& catch_
  1751. )
  1752. {
  1753. return
  1754. gen_type::make(
  1755. 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)
  1756. , proto::make_expr<
  1757. phoenix::tag::catch_
  1758. , proto::basic_default_domain
  1759. >(catch_exception<Exception>(), catch_)
  1760. );
  1761. }
  1762. };
  1763. template <typename TryCatch, typename Expr>
  1764. struct catch_all_push_back<TryCatch, Expr, 20>
  1765. {
  1766. typedef
  1767. typename proto::result_of::make_expr<
  1768. phoenix::tag::catch_all
  1769. , proto::basic_default_domain
  1770. , Expr
  1771. >::type
  1772. catch_expr;
  1773. typedef phoenix::expression::try_catch<
  1774. 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
  1775. , catch_expr> gen_type;
  1776. typedef typename gen_type::type type;
  1777. static type
  1778. make(
  1779. TryCatch const& try_catch
  1780. , Expr const& catch_
  1781. )
  1782. {
  1783. return
  1784. gen_type::make(
  1785. 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)
  1786. , proto::make_expr<
  1787. phoenix::tag::catch_all
  1788. , proto::basic_default_domain
  1789. >(catch_)
  1790. );
  1791. }
  1792. };
  1793. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  1794. struct catch_push_back<TryCatch, Exception, Capture, Expr, 21>
  1795. {
  1796. typedef
  1797. typename proto::result_of::make_expr<
  1798. phoenix::tag::catch_
  1799. , proto::basic_default_domain
  1800. , catch_exception<Exception>
  1801. , Capture
  1802. , Expr
  1803. >::type
  1804. catch_expr;
  1805. typedef phoenix::expression::try_catch<
  1806. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type
  1807. , catch_expr> gen_type;
  1808. typedef typename gen_type::type type;
  1809. static type
  1810. make(
  1811. TryCatch const& try_catch
  1812. , Capture const& capture
  1813. , Expr const& catch_
  1814. )
  1815. {
  1816. return
  1817. gen_type::make(
  1818. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch)
  1819. , proto::make_expr<
  1820. phoenix::tag::catch_
  1821. , proto::basic_default_domain
  1822. >(catch_exception<Exception>(), capture, catch_)
  1823. );
  1824. }
  1825. };
  1826. template <typename TryCatch, typename Exception, typename Expr>
  1827. struct catch_push_back<TryCatch, Exception, void, Expr, 21>
  1828. {
  1829. typedef
  1830. typename proto::result_of::make_expr<
  1831. phoenix::tag::catch_
  1832. , proto::basic_default_domain
  1833. , catch_exception<Exception>
  1834. , Expr
  1835. >::type
  1836. catch_expr;
  1837. typedef phoenix::expression::try_catch<
  1838. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type
  1839. , catch_expr> gen_type;
  1840. typedef typename gen_type::type type;
  1841. static type
  1842. make(
  1843. TryCatch const& try_catch
  1844. , Expr const& catch_
  1845. )
  1846. {
  1847. return
  1848. gen_type::make(
  1849. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch)
  1850. , proto::make_expr<
  1851. phoenix::tag::catch_
  1852. , proto::basic_default_domain
  1853. >(catch_exception<Exception>(), catch_)
  1854. );
  1855. }
  1856. };
  1857. template <typename TryCatch, typename Expr>
  1858. struct catch_all_push_back<TryCatch, Expr, 21>
  1859. {
  1860. typedef
  1861. typename proto::result_of::make_expr<
  1862. phoenix::tag::catch_all
  1863. , proto::basic_default_domain
  1864. , Expr
  1865. >::type
  1866. catch_expr;
  1867. typedef phoenix::expression::try_catch<
  1868. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type
  1869. , catch_expr> gen_type;
  1870. typedef typename gen_type::type type;
  1871. static type
  1872. make(
  1873. TryCatch const& try_catch
  1874. , Expr const& catch_
  1875. )
  1876. {
  1877. return
  1878. gen_type::make(
  1879. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch)
  1880. , proto::make_expr<
  1881. phoenix::tag::catch_all
  1882. , proto::basic_default_domain
  1883. >(catch_)
  1884. );
  1885. }
  1886. };
  1887. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  1888. struct catch_push_back<TryCatch, Exception, Capture, Expr, 22>
  1889. {
  1890. typedef
  1891. typename proto::result_of::make_expr<
  1892. phoenix::tag::catch_
  1893. , proto::basic_default_domain
  1894. , catch_exception<Exception>
  1895. , Capture
  1896. , Expr
  1897. >::type
  1898. catch_expr;
  1899. typedef phoenix::expression::try_catch<
  1900. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type
  1901. , catch_expr> gen_type;
  1902. typedef typename gen_type::type type;
  1903. static type
  1904. make(
  1905. TryCatch const& try_catch
  1906. , Capture const& capture
  1907. , Expr const& catch_
  1908. )
  1909. {
  1910. return
  1911. gen_type::make(
  1912. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch)
  1913. , proto::make_expr<
  1914. phoenix::tag::catch_
  1915. , proto::basic_default_domain
  1916. >(catch_exception<Exception>(), capture, catch_)
  1917. );
  1918. }
  1919. };
  1920. template <typename TryCatch, typename Exception, typename Expr>
  1921. struct catch_push_back<TryCatch, Exception, void, Expr, 22>
  1922. {
  1923. typedef
  1924. typename proto::result_of::make_expr<
  1925. phoenix::tag::catch_
  1926. , proto::basic_default_domain
  1927. , catch_exception<Exception>
  1928. , Expr
  1929. >::type
  1930. catch_expr;
  1931. typedef phoenix::expression::try_catch<
  1932. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type
  1933. , catch_expr> gen_type;
  1934. typedef typename gen_type::type type;
  1935. static type
  1936. make(
  1937. TryCatch const& try_catch
  1938. , Expr const& catch_
  1939. )
  1940. {
  1941. return
  1942. gen_type::make(
  1943. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch)
  1944. , proto::make_expr<
  1945. phoenix::tag::catch_
  1946. , proto::basic_default_domain
  1947. >(catch_exception<Exception>(), catch_)
  1948. );
  1949. }
  1950. };
  1951. template <typename TryCatch, typename Expr>
  1952. struct catch_all_push_back<TryCatch, Expr, 22>
  1953. {
  1954. typedef
  1955. typename proto::result_of::make_expr<
  1956. phoenix::tag::catch_all
  1957. , proto::basic_default_domain
  1958. , Expr
  1959. >::type
  1960. catch_expr;
  1961. typedef phoenix::expression::try_catch<
  1962. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type
  1963. , catch_expr> gen_type;
  1964. typedef typename gen_type::type type;
  1965. static type
  1966. make(
  1967. TryCatch const& try_catch
  1968. , Expr const& catch_
  1969. )
  1970. {
  1971. return
  1972. gen_type::make(
  1973. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch)
  1974. , proto::make_expr<
  1975. phoenix::tag::catch_all
  1976. , proto::basic_default_domain
  1977. >(catch_)
  1978. );
  1979. }
  1980. };
  1981. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  1982. struct catch_push_back<TryCatch, Exception, Capture, Expr, 23>
  1983. {
  1984. typedef
  1985. typename proto::result_of::make_expr<
  1986. phoenix::tag::catch_
  1987. , proto::basic_default_domain
  1988. , catch_exception<Exception>
  1989. , Capture
  1990. , Expr
  1991. >::type
  1992. catch_expr;
  1993. typedef phoenix::expression::try_catch<
  1994. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type
  1995. , catch_expr> gen_type;
  1996. typedef typename gen_type::type type;
  1997. static type
  1998. make(
  1999. TryCatch const& try_catch
  2000. , Capture const& capture
  2001. , Expr const& catch_
  2002. )
  2003. {
  2004. return
  2005. gen_type::make(
  2006. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch)
  2007. , proto::make_expr<
  2008. phoenix::tag::catch_
  2009. , proto::basic_default_domain
  2010. >(catch_exception<Exception>(), capture, catch_)
  2011. );
  2012. }
  2013. };
  2014. template <typename TryCatch, typename Exception, typename Expr>
  2015. struct catch_push_back<TryCatch, Exception, void, Expr, 23>
  2016. {
  2017. typedef
  2018. typename proto::result_of::make_expr<
  2019. phoenix::tag::catch_
  2020. , proto::basic_default_domain
  2021. , catch_exception<Exception>
  2022. , Expr
  2023. >::type
  2024. catch_expr;
  2025. typedef phoenix::expression::try_catch<
  2026. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type
  2027. , catch_expr> gen_type;
  2028. typedef typename gen_type::type type;
  2029. static type
  2030. make(
  2031. TryCatch const& try_catch
  2032. , Expr const& catch_
  2033. )
  2034. {
  2035. return
  2036. gen_type::make(
  2037. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch)
  2038. , proto::make_expr<
  2039. phoenix::tag::catch_
  2040. , proto::basic_default_domain
  2041. >(catch_exception<Exception>(), catch_)
  2042. );
  2043. }
  2044. };
  2045. template <typename TryCatch, typename Expr>
  2046. struct catch_all_push_back<TryCatch, Expr, 23>
  2047. {
  2048. typedef
  2049. typename proto::result_of::make_expr<
  2050. phoenix::tag::catch_all
  2051. , proto::basic_default_domain
  2052. , Expr
  2053. >::type
  2054. catch_expr;
  2055. typedef phoenix::expression::try_catch<
  2056. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type
  2057. , catch_expr> gen_type;
  2058. typedef typename gen_type::type type;
  2059. static type
  2060. make(
  2061. TryCatch const& try_catch
  2062. , Expr const& catch_
  2063. )
  2064. {
  2065. return
  2066. gen_type::make(
  2067. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch)
  2068. , proto::make_expr<
  2069. phoenix::tag::catch_all
  2070. , proto::basic_default_domain
  2071. >(catch_)
  2072. );
  2073. }
  2074. };
  2075. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  2076. struct catch_push_back<TryCatch, Exception, Capture, Expr, 24>
  2077. {
  2078. typedef
  2079. typename proto::result_of::make_expr<
  2080. phoenix::tag::catch_
  2081. , proto::basic_default_domain
  2082. , catch_exception<Exception>
  2083. , Capture
  2084. , Expr
  2085. >::type
  2086. catch_expr;
  2087. typedef phoenix::expression::try_catch<
  2088. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type
  2089. , catch_expr> gen_type;
  2090. typedef typename gen_type::type type;
  2091. static type
  2092. make(
  2093. TryCatch const& try_catch
  2094. , Capture const& capture
  2095. , Expr const& catch_
  2096. )
  2097. {
  2098. return
  2099. gen_type::make(
  2100. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch)
  2101. , proto::make_expr<
  2102. phoenix::tag::catch_
  2103. , proto::basic_default_domain
  2104. >(catch_exception<Exception>(), capture, catch_)
  2105. );
  2106. }
  2107. };
  2108. template <typename TryCatch, typename Exception, typename Expr>
  2109. struct catch_push_back<TryCatch, Exception, void, Expr, 24>
  2110. {
  2111. typedef
  2112. typename proto::result_of::make_expr<
  2113. phoenix::tag::catch_
  2114. , proto::basic_default_domain
  2115. , catch_exception<Exception>
  2116. , Expr
  2117. >::type
  2118. catch_expr;
  2119. typedef phoenix::expression::try_catch<
  2120. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type
  2121. , catch_expr> gen_type;
  2122. typedef typename gen_type::type type;
  2123. static type
  2124. make(
  2125. TryCatch const& try_catch
  2126. , Expr const& catch_
  2127. )
  2128. {
  2129. return
  2130. gen_type::make(
  2131. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch)
  2132. , proto::make_expr<
  2133. phoenix::tag::catch_
  2134. , proto::basic_default_domain
  2135. >(catch_exception<Exception>(), catch_)
  2136. );
  2137. }
  2138. };
  2139. template <typename TryCatch, typename Expr>
  2140. struct catch_all_push_back<TryCatch, Expr, 24>
  2141. {
  2142. typedef
  2143. typename proto::result_of::make_expr<
  2144. phoenix::tag::catch_all
  2145. , proto::basic_default_domain
  2146. , Expr
  2147. >::type
  2148. catch_expr;
  2149. typedef phoenix::expression::try_catch<
  2150. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type
  2151. , catch_expr> gen_type;
  2152. typedef typename gen_type::type type;
  2153. static type
  2154. make(
  2155. TryCatch const& try_catch
  2156. , Expr const& catch_
  2157. )
  2158. {
  2159. return
  2160. gen_type::make(
  2161. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch)
  2162. , proto::make_expr<
  2163. phoenix::tag::catch_all
  2164. , proto::basic_default_domain
  2165. >(catch_)
  2166. );
  2167. }
  2168. };
  2169. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  2170. struct catch_push_back<TryCatch, Exception, Capture, Expr, 25>
  2171. {
  2172. typedef
  2173. typename proto::result_of::make_expr<
  2174. phoenix::tag::catch_
  2175. , proto::basic_default_domain
  2176. , catch_exception<Exception>
  2177. , Capture
  2178. , Expr
  2179. >::type
  2180. catch_expr;
  2181. typedef phoenix::expression::try_catch<
  2182. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type
  2183. , catch_expr> gen_type;
  2184. typedef typename gen_type::type type;
  2185. static type
  2186. make(
  2187. TryCatch const& try_catch
  2188. , Capture const& capture
  2189. , Expr const& catch_
  2190. )
  2191. {
  2192. return
  2193. gen_type::make(
  2194. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch)
  2195. , proto::make_expr<
  2196. phoenix::tag::catch_
  2197. , proto::basic_default_domain
  2198. >(catch_exception<Exception>(), capture, catch_)
  2199. );
  2200. }
  2201. };
  2202. template <typename TryCatch, typename Exception, typename Expr>
  2203. struct catch_push_back<TryCatch, Exception, void, Expr, 25>
  2204. {
  2205. typedef
  2206. typename proto::result_of::make_expr<
  2207. phoenix::tag::catch_
  2208. , proto::basic_default_domain
  2209. , catch_exception<Exception>
  2210. , Expr
  2211. >::type
  2212. catch_expr;
  2213. typedef phoenix::expression::try_catch<
  2214. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type
  2215. , catch_expr> gen_type;
  2216. typedef typename gen_type::type type;
  2217. static type
  2218. make(
  2219. TryCatch const& try_catch
  2220. , Expr const& catch_
  2221. )
  2222. {
  2223. return
  2224. gen_type::make(
  2225. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch)
  2226. , proto::make_expr<
  2227. phoenix::tag::catch_
  2228. , proto::basic_default_domain
  2229. >(catch_exception<Exception>(), catch_)
  2230. );
  2231. }
  2232. };
  2233. template <typename TryCatch, typename Expr>
  2234. struct catch_all_push_back<TryCatch, Expr, 25>
  2235. {
  2236. typedef
  2237. typename proto::result_of::make_expr<
  2238. phoenix::tag::catch_all
  2239. , proto::basic_default_domain
  2240. , Expr
  2241. >::type
  2242. catch_expr;
  2243. typedef phoenix::expression::try_catch<
  2244. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type
  2245. , catch_expr> gen_type;
  2246. typedef typename gen_type::type type;
  2247. static type
  2248. make(
  2249. TryCatch const& try_catch
  2250. , Expr const& catch_
  2251. )
  2252. {
  2253. return
  2254. gen_type::make(
  2255. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch)
  2256. , proto::make_expr<
  2257. phoenix::tag::catch_all
  2258. , proto::basic_default_domain
  2259. >(catch_)
  2260. );
  2261. }
  2262. };
  2263. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  2264. struct catch_push_back<TryCatch, Exception, Capture, Expr, 26>
  2265. {
  2266. typedef
  2267. typename proto::result_of::make_expr<
  2268. phoenix::tag::catch_
  2269. , proto::basic_default_domain
  2270. , catch_exception<Exception>
  2271. , Capture
  2272. , Expr
  2273. >::type
  2274. catch_expr;
  2275. typedef phoenix::expression::try_catch<
  2276. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type
  2277. , catch_expr> gen_type;
  2278. typedef typename gen_type::type type;
  2279. static type
  2280. make(
  2281. TryCatch const& try_catch
  2282. , Capture const& capture
  2283. , Expr const& catch_
  2284. )
  2285. {
  2286. return
  2287. gen_type::make(
  2288. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch)
  2289. , proto::make_expr<
  2290. phoenix::tag::catch_
  2291. , proto::basic_default_domain
  2292. >(catch_exception<Exception>(), capture, catch_)
  2293. );
  2294. }
  2295. };
  2296. template <typename TryCatch, typename Exception, typename Expr>
  2297. struct catch_push_back<TryCatch, Exception, void, Expr, 26>
  2298. {
  2299. typedef
  2300. typename proto::result_of::make_expr<
  2301. phoenix::tag::catch_
  2302. , proto::basic_default_domain
  2303. , catch_exception<Exception>
  2304. , Expr
  2305. >::type
  2306. catch_expr;
  2307. typedef phoenix::expression::try_catch<
  2308. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type
  2309. , catch_expr> gen_type;
  2310. typedef typename gen_type::type type;
  2311. static type
  2312. make(
  2313. TryCatch const& try_catch
  2314. , Expr const& catch_
  2315. )
  2316. {
  2317. return
  2318. gen_type::make(
  2319. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch)
  2320. , proto::make_expr<
  2321. phoenix::tag::catch_
  2322. , proto::basic_default_domain
  2323. >(catch_exception<Exception>(), catch_)
  2324. );
  2325. }
  2326. };
  2327. template <typename TryCatch, typename Expr>
  2328. struct catch_all_push_back<TryCatch, Expr, 26>
  2329. {
  2330. typedef
  2331. typename proto::result_of::make_expr<
  2332. phoenix::tag::catch_all
  2333. , proto::basic_default_domain
  2334. , Expr
  2335. >::type
  2336. catch_expr;
  2337. typedef phoenix::expression::try_catch<
  2338. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type
  2339. , catch_expr> gen_type;
  2340. typedef typename gen_type::type type;
  2341. static type
  2342. make(
  2343. TryCatch const& try_catch
  2344. , Expr const& catch_
  2345. )
  2346. {
  2347. return
  2348. gen_type::make(
  2349. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch)
  2350. , proto::make_expr<
  2351. phoenix::tag::catch_all
  2352. , proto::basic_default_domain
  2353. >(catch_)
  2354. );
  2355. }
  2356. };
  2357. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  2358. struct catch_push_back<TryCatch, Exception, Capture, Expr, 27>
  2359. {
  2360. typedef
  2361. typename proto::result_of::make_expr<
  2362. phoenix::tag::catch_
  2363. , proto::basic_default_domain
  2364. , catch_exception<Exception>
  2365. , Capture
  2366. , Expr
  2367. >::type
  2368. catch_expr;
  2369. typedef phoenix::expression::try_catch<
  2370. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type
  2371. , catch_expr> gen_type;
  2372. typedef typename gen_type::type type;
  2373. static type
  2374. make(
  2375. TryCatch const& try_catch
  2376. , Capture const& capture
  2377. , Expr const& catch_
  2378. )
  2379. {
  2380. return
  2381. gen_type::make(
  2382. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch)
  2383. , proto::make_expr<
  2384. phoenix::tag::catch_
  2385. , proto::basic_default_domain
  2386. >(catch_exception<Exception>(), capture, catch_)
  2387. );
  2388. }
  2389. };
  2390. template <typename TryCatch, typename Exception, typename Expr>
  2391. struct catch_push_back<TryCatch, Exception, void, Expr, 27>
  2392. {
  2393. typedef
  2394. typename proto::result_of::make_expr<
  2395. phoenix::tag::catch_
  2396. , proto::basic_default_domain
  2397. , catch_exception<Exception>
  2398. , Expr
  2399. >::type
  2400. catch_expr;
  2401. typedef phoenix::expression::try_catch<
  2402. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type
  2403. , catch_expr> gen_type;
  2404. typedef typename gen_type::type type;
  2405. static type
  2406. make(
  2407. TryCatch const& try_catch
  2408. , Expr const& catch_
  2409. )
  2410. {
  2411. return
  2412. gen_type::make(
  2413. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch)
  2414. , proto::make_expr<
  2415. phoenix::tag::catch_
  2416. , proto::basic_default_domain
  2417. >(catch_exception<Exception>(), catch_)
  2418. );
  2419. }
  2420. };
  2421. template <typename TryCatch, typename Expr>
  2422. struct catch_all_push_back<TryCatch, Expr, 27>
  2423. {
  2424. typedef
  2425. typename proto::result_of::make_expr<
  2426. phoenix::tag::catch_all
  2427. , proto::basic_default_domain
  2428. , Expr
  2429. >::type
  2430. catch_expr;
  2431. typedef phoenix::expression::try_catch<
  2432. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type
  2433. , catch_expr> gen_type;
  2434. typedef typename gen_type::type type;
  2435. static type
  2436. make(
  2437. TryCatch const& try_catch
  2438. , Expr const& catch_
  2439. )
  2440. {
  2441. return
  2442. gen_type::make(
  2443. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch)
  2444. , proto::make_expr<
  2445. phoenix::tag::catch_all
  2446. , proto::basic_default_domain
  2447. >(catch_)
  2448. );
  2449. }
  2450. };
  2451. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  2452. struct catch_push_back<TryCatch, Exception, Capture, Expr, 28>
  2453. {
  2454. typedef
  2455. typename proto::result_of::make_expr<
  2456. phoenix::tag::catch_
  2457. , proto::basic_default_domain
  2458. , catch_exception<Exception>
  2459. , Capture
  2460. , Expr
  2461. >::type
  2462. catch_expr;
  2463. typedef phoenix::expression::try_catch<
  2464. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type
  2465. , catch_expr> gen_type;
  2466. typedef typename gen_type::type type;
  2467. static type
  2468. make(
  2469. TryCatch const& try_catch
  2470. , Capture const& capture
  2471. , Expr const& catch_
  2472. )
  2473. {
  2474. return
  2475. gen_type::make(
  2476. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch) , proto::child_c< 27>(try_catch)
  2477. , proto::make_expr<
  2478. phoenix::tag::catch_
  2479. , proto::basic_default_domain
  2480. >(catch_exception<Exception>(), capture, catch_)
  2481. );
  2482. }
  2483. };
  2484. template <typename TryCatch, typename Exception, typename Expr>
  2485. struct catch_push_back<TryCatch, Exception, void, Expr, 28>
  2486. {
  2487. typedef
  2488. typename proto::result_of::make_expr<
  2489. phoenix::tag::catch_
  2490. , proto::basic_default_domain
  2491. , catch_exception<Exception>
  2492. , Expr
  2493. >::type
  2494. catch_expr;
  2495. typedef phoenix::expression::try_catch<
  2496. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type
  2497. , catch_expr> gen_type;
  2498. typedef typename gen_type::type type;
  2499. static type
  2500. make(
  2501. TryCatch const& try_catch
  2502. , Expr const& catch_
  2503. )
  2504. {
  2505. return
  2506. gen_type::make(
  2507. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch) , proto::child_c< 27>(try_catch)
  2508. , proto::make_expr<
  2509. phoenix::tag::catch_
  2510. , proto::basic_default_domain
  2511. >(catch_exception<Exception>(), catch_)
  2512. );
  2513. }
  2514. };
  2515. template <typename TryCatch, typename Expr>
  2516. struct catch_all_push_back<TryCatch, Expr, 28>
  2517. {
  2518. typedef
  2519. typename proto::result_of::make_expr<
  2520. phoenix::tag::catch_all
  2521. , proto::basic_default_domain
  2522. , Expr
  2523. >::type
  2524. catch_expr;
  2525. typedef phoenix::expression::try_catch<
  2526. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type
  2527. , catch_expr> gen_type;
  2528. typedef typename gen_type::type type;
  2529. static type
  2530. make(
  2531. TryCatch const& try_catch
  2532. , Expr const& catch_
  2533. )
  2534. {
  2535. return
  2536. gen_type::make(
  2537. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch) , proto::child_c< 27>(try_catch)
  2538. , proto::make_expr<
  2539. phoenix::tag::catch_all
  2540. , proto::basic_default_domain
  2541. >(catch_)
  2542. );
  2543. }
  2544. };
  2545. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  2546. struct catch_push_back<TryCatch, Exception, Capture, Expr, 29>
  2547. {
  2548. typedef
  2549. typename proto::result_of::make_expr<
  2550. phoenix::tag::catch_
  2551. , proto::basic_default_domain
  2552. , catch_exception<Exception>
  2553. , Capture
  2554. , Expr
  2555. >::type
  2556. catch_expr;
  2557. typedef phoenix::expression::try_catch<
  2558. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type
  2559. , catch_expr> gen_type;
  2560. typedef typename gen_type::type type;
  2561. static type
  2562. make(
  2563. TryCatch const& try_catch
  2564. , Capture const& capture
  2565. , Expr const& catch_
  2566. )
  2567. {
  2568. return
  2569. gen_type::make(
  2570. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch) , proto::child_c< 27>(try_catch) , proto::child_c< 28>(try_catch)
  2571. , proto::make_expr<
  2572. phoenix::tag::catch_
  2573. , proto::basic_default_domain
  2574. >(catch_exception<Exception>(), capture, catch_)
  2575. );
  2576. }
  2577. };
  2578. template <typename TryCatch, typename Exception, typename Expr>
  2579. struct catch_push_back<TryCatch, Exception, void, Expr, 29>
  2580. {
  2581. typedef
  2582. typename proto::result_of::make_expr<
  2583. phoenix::tag::catch_
  2584. , proto::basic_default_domain
  2585. , catch_exception<Exception>
  2586. , Expr
  2587. >::type
  2588. catch_expr;
  2589. typedef phoenix::expression::try_catch<
  2590. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type
  2591. , catch_expr> gen_type;
  2592. typedef typename gen_type::type type;
  2593. static type
  2594. make(
  2595. TryCatch const& try_catch
  2596. , Expr const& catch_
  2597. )
  2598. {
  2599. return
  2600. gen_type::make(
  2601. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch) , proto::child_c< 27>(try_catch) , proto::child_c< 28>(try_catch)
  2602. , proto::make_expr<
  2603. phoenix::tag::catch_
  2604. , proto::basic_default_domain
  2605. >(catch_exception<Exception>(), catch_)
  2606. );
  2607. }
  2608. };
  2609. template <typename TryCatch, typename Expr>
  2610. struct catch_all_push_back<TryCatch, Expr, 29>
  2611. {
  2612. typedef
  2613. typename proto::result_of::make_expr<
  2614. phoenix::tag::catch_all
  2615. , proto::basic_default_domain
  2616. , Expr
  2617. >::type
  2618. catch_expr;
  2619. typedef phoenix::expression::try_catch<
  2620. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type
  2621. , catch_expr> gen_type;
  2622. typedef typename gen_type::type type;
  2623. static type
  2624. make(
  2625. TryCatch const& try_catch
  2626. , Expr const& catch_
  2627. )
  2628. {
  2629. return
  2630. gen_type::make(
  2631. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch) , proto::child_c< 27>(try_catch) , proto::child_c< 28>(try_catch)
  2632. , proto::make_expr<
  2633. phoenix::tag::catch_all
  2634. , proto::basic_default_domain
  2635. >(catch_)
  2636. );
  2637. }
  2638. };
  2639. template <typename TryCatch, typename Exception, typename Capture, typename Expr>
  2640. struct catch_push_back<TryCatch, Exception, Capture, Expr, 30>
  2641. {
  2642. typedef
  2643. typename proto::result_of::make_expr<
  2644. phoenix::tag::catch_
  2645. , proto::basic_default_domain
  2646. , catch_exception<Exception>
  2647. , Capture
  2648. , Expr
  2649. >::type
  2650. catch_expr;
  2651. typedef phoenix::expression::try_catch<
  2652. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type
  2653. , catch_expr> gen_type;
  2654. typedef typename gen_type::type type;
  2655. static type
  2656. make(
  2657. TryCatch const& try_catch
  2658. , Capture const& capture
  2659. , Expr const& catch_
  2660. )
  2661. {
  2662. return
  2663. gen_type::make(
  2664. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch) , proto::child_c< 27>(try_catch) , proto::child_c< 28>(try_catch) , proto::child_c< 29>(try_catch)
  2665. , proto::make_expr<
  2666. phoenix::tag::catch_
  2667. , proto::basic_default_domain
  2668. >(catch_exception<Exception>(), capture, catch_)
  2669. );
  2670. }
  2671. };
  2672. template <typename TryCatch, typename Exception, typename Expr>
  2673. struct catch_push_back<TryCatch, Exception, void, Expr, 30>
  2674. {
  2675. typedef
  2676. typename proto::result_of::make_expr<
  2677. phoenix::tag::catch_
  2678. , proto::basic_default_domain
  2679. , catch_exception<Exception>
  2680. , Expr
  2681. >::type
  2682. catch_expr;
  2683. typedef phoenix::expression::try_catch<
  2684. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type
  2685. , catch_expr> gen_type;
  2686. typedef typename gen_type::type type;
  2687. static type
  2688. make(
  2689. TryCatch const& try_catch
  2690. , Expr const& catch_
  2691. )
  2692. {
  2693. return
  2694. gen_type::make(
  2695. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch) , proto::child_c< 27>(try_catch) , proto::child_c< 28>(try_catch) , proto::child_c< 29>(try_catch)
  2696. , proto::make_expr<
  2697. phoenix::tag::catch_
  2698. , proto::basic_default_domain
  2699. >(catch_exception<Exception>(), catch_)
  2700. );
  2701. }
  2702. };
  2703. template <typename TryCatch, typename Expr>
  2704. struct catch_all_push_back<TryCatch, Expr, 30>
  2705. {
  2706. typedef
  2707. typename proto::result_of::make_expr<
  2708. phoenix::tag::catch_all
  2709. , proto::basic_default_domain
  2710. , Expr
  2711. >::type
  2712. catch_expr;
  2713. typedef phoenix::expression::try_catch<
  2714. typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type , typename proto::result_of::child_c<TryCatch, 10>::type , typename proto::result_of::child_c<TryCatch, 11>::type , typename proto::result_of::child_c<TryCatch, 12>::type , typename proto::result_of::child_c<TryCatch, 13>::type , typename proto::result_of::child_c<TryCatch, 14>::type , typename proto::result_of::child_c<TryCatch, 15>::type , typename proto::result_of::child_c<TryCatch, 16>::type , typename proto::result_of::child_c<TryCatch, 17>::type , typename proto::result_of::child_c<TryCatch, 18>::type , typename proto::result_of::child_c<TryCatch, 19>::type , typename proto::result_of::child_c<TryCatch, 20>::type , typename proto::result_of::child_c<TryCatch, 21>::type , typename proto::result_of::child_c<TryCatch, 22>::type , typename proto::result_of::child_c<TryCatch, 23>::type , typename proto::result_of::child_c<TryCatch, 24>::type , typename proto::result_of::child_c<TryCatch, 25>::type , typename proto::result_of::child_c<TryCatch, 26>::type , typename proto::result_of::child_c<TryCatch, 27>::type , typename proto::result_of::child_c<TryCatch, 28>::type , typename proto::result_of::child_c<TryCatch, 29>::type
  2715. , catch_expr> gen_type;
  2716. typedef typename gen_type::type type;
  2717. static type
  2718. make(
  2719. TryCatch const& try_catch
  2720. , Expr const& catch_
  2721. )
  2722. {
  2723. return
  2724. gen_type::make(
  2725. proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch) , proto::child_c< 10>(try_catch) , proto::child_c< 11>(try_catch) , proto::child_c< 12>(try_catch) , proto::child_c< 13>(try_catch) , proto::child_c< 14>(try_catch) , proto::child_c< 15>(try_catch) , proto::child_c< 16>(try_catch) , proto::child_c< 17>(try_catch) , proto::child_c< 18>(try_catch) , proto::child_c< 19>(try_catch) , proto::child_c< 20>(try_catch) , proto::child_c< 21>(try_catch) , proto::child_c< 22>(try_catch) , proto::child_c< 23>(try_catch) , proto::child_c< 24>(try_catch) , proto::child_c< 25>(try_catch) , proto::child_c< 26>(try_catch) , proto::child_c< 27>(try_catch) , proto::child_c< 28>(try_catch) , proto::child_c< 29>(try_catch)
  2726. , proto::make_expr<
  2727. phoenix::tag::catch_all
  2728. , proto::basic_default_domain
  2729. >(catch_)
  2730. );
  2731. }
  2732. };