Chris@16
|
1 /*==============================================================================
|
Chris@16
|
2 Copyright (c) 2005-2010 Joel de Guzman
|
Chris@16
|
3 Copyright (c) 2010 Thomas Heller
|
Chris@16
|
4
|
Chris@16
|
5 Distributed under the Boost Software License, Version 1.0. (See accompanying
|
Chris@16
|
6 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
7 ==============================================================================*/
|
Chris@16
|
8
|
Chris@16
|
9
|
Chris@16
|
10
|
Chris@16
|
11
|
Chris@16
|
12
|
Chris@16
|
13
|
Chris@16
|
14
|
Chris@16
|
15 template <typename TryCatch, typename Exception, typename Expr>
|
Chris@16
|
16 struct catch_push_back<TryCatch, Exception, Expr, 2>
|
Chris@16
|
17 {
|
Chris@16
|
18 typedef
|
Chris@16
|
19 typename proto::result_of::make_expr<
|
Chris@16
|
20 phoenix::tag::catch_
|
Chris@16
|
21 , proto::basic_default_domain
|
Chris@16
|
22 , catch_exception<Exception>
|
Chris@16
|
23 , Expr
|
Chris@16
|
24 >::type
|
Chris@16
|
25 catch_expr;
|
Chris@16
|
26 typedef phoenix::expression::try_catch<
|
Chris@16
|
27 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type
|
Chris@16
|
28 , catch_expr> gen_type;
|
Chris@16
|
29 typedef typename gen_type::type type;
|
Chris@16
|
30 static type
|
Chris@16
|
31 make(
|
Chris@16
|
32 TryCatch const& try_catch
|
Chris@16
|
33 , Expr const& catch_
|
Chris@16
|
34 )
|
Chris@16
|
35 {
|
Chris@16
|
36 return
|
Chris@16
|
37 gen_type::make(
|
Chris@16
|
38 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch)
|
Chris@16
|
39 , proto::make_expr<
|
Chris@16
|
40 phoenix::tag::catch_
|
Chris@16
|
41 , proto::basic_default_domain
|
Chris@16
|
42 >(catch_exception<Exception>(), catch_)
|
Chris@16
|
43 );
|
Chris@16
|
44 }
|
Chris@16
|
45 };
|
Chris@16
|
46
|
Chris@16
|
47 template <typename TryCatch, typename Expr>
|
Chris@16
|
48 struct catch_all_push_back<TryCatch, Expr, 2>
|
Chris@16
|
49 {
|
Chris@16
|
50 typedef
|
Chris@16
|
51 typename proto::result_of::make_expr<
|
Chris@16
|
52 phoenix::tag::catch_all
|
Chris@16
|
53 , proto::basic_default_domain
|
Chris@16
|
54 , Expr
|
Chris@16
|
55 >::type
|
Chris@16
|
56 catch_expr;
|
Chris@16
|
57 typedef phoenix::expression::try_catch<
|
Chris@16
|
58 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type
|
Chris@16
|
59 , catch_expr> gen_type;
|
Chris@16
|
60 typedef typename gen_type::type type;
|
Chris@16
|
61 static type
|
Chris@16
|
62 make(
|
Chris@16
|
63 TryCatch const& try_catch
|
Chris@16
|
64 , Expr const& catch_
|
Chris@16
|
65 )
|
Chris@16
|
66 {
|
Chris@16
|
67 return
|
Chris@16
|
68 gen_type::make(
|
Chris@16
|
69 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch)
|
Chris@16
|
70 , proto::make_expr<
|
Chris@16
|
71 phoenix::tag::catch_all
|
Chris@16
|
72 , proto::basic_default_domain
|
Chris@16
|
73 >(catch_)
|
Chris@16
|
74 );
|
Chris@16
|
75 }
|
Chris@16
|
76 };
|
Chris@16
|
77
|
Chris@16
|
78
|
Chris@16
|
79
|
Chris@16
|
80
|
Chris@16
|
81
|
Chris@16
|
82
|
Chris@16
|
83
|
Chris@16
|
84 template <typename TryCatch, typename Exception, typename Expr>
|
Chris@16
|
85 struct catch_push_back<TryCatch, Exception, Expr, 3>
|
Chris@16
|
86 {
|
Chris@16
|
87 typedef
|
Chris@16
|
88 typename proto::result_of::make_expr<
|
Chris@16
|
89 phoenix::tag::catch_
|
Chris@16
|
90 , proto::basic_default_domain
|
Chris@16
|
91 , catch_exception<Exception>
|
Chris@16
|
92 , Expr
|
Chris@16
|
93 >::type
|
Chris@16
|
94 catch_expr;
|
Chris@16
|
95 typedef phoenix::expression::try_catch<
|
Chris@16
|
96 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type
|
Chris@16
|
97 , catch_expr> gen_type;
|
Chris@16
|
98 typedef typename gen_type::type type;
|
Chris@16
|
99 static type
|
Chris@16
|
100 make(
|
Chris@16
|
101 TryCatch const& try_catch
|
Chris@16
|
102 , Expr const& catch_
|
Chris@16
|
103 )
|
Chris@16
|
104 {
|
Chris@16
|
105 return
|
Chris@16
|
106 gen_type::make(
|
Chris@16
|
107 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch)
|
Chris@16
|
108 , proto::make_expr<
|
Chris@16
|
109 phoenix::tag::catch_
|
Chris@16
|
110 , proto::basic_default_domain
|
Chris@16
|
111 >(catch_exception<Exception>(), catch_)
|
Chris@16
|
112 );
|
Chris@16
|
113 }
|
Chris@16
|
114 };
|
Chris@16
|
115
|
Chris@16
|
116 template <typename TryCatch, typename Expr>
|
Chris@16
|
117 struct catch_all_push_back<TryCatch, Expr, 3>
|
Chris@16
|
118 {
|
Chris@16
|
119 typedef
|
Chris@16
|
120 typename proto::result_of::make_expr<
|
Chris@16
|
121 phoenix::tag::catch_all
|
Chris@16
|
122 , proto::basic_default_domain
|
Chris@16
|
123 , Expr
|
Chris@16
|
124 >::type
|
Chris@16
|
125 catch_expr;
|
Chris@16
|
126 typedef phoenix::expression::try_catch<
|
Chris@16
|
127 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type
|
Chris@16
|
128 , catch_expr> gen_type;
|
Chris@16
|
129 typedef typename gen_type::type type;
|
Chris@16
|
130 static type
|
Chris@16
|
131 make(
|
Chris@16
|
132 TryCatch const& try_catch
|
Chris@16
|
133 , Expr const& catch_
|
Chris@16
|
134 )
|
Chris@16
|
135 {
|
Chris@16
|
136 return
|
Chris@16
|
137 gen_type::make(
|
Chris@16
|
138 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch)
|
Chris@16
|
139 , proto::make_expr<
|
Chris@16
|
140 phoenix::tag::catch_all
|
Chris@16
|
141 , proto::basic_default_domain
|
Chris@16
|
142 >(catch_)
|
Chris@16
|
143 );
|
Chris@16
|
144 }
|
Chris@16
|
145 };
|
Chris@16
|
146
|
Chris@16
|
147
|
Chris@16
|
148
|
Chris@16
|
149
|
Chris@16
|
150
|
Chris@16
|
151
|
Chris@16
|
152
|
Chris@16
|
153 template <typename TryCatch, typename Exception, typename Expr>
|
Chris@16
|
154 struct catch_push_back<TryCatch, Exception, Expr, 4>
|
Chris@16
|
155 {
|
Chris@16
|
156 typedef
|
Chris@16
|
157 typename proto::result_of::make_expr<
|
Chris@16
|
158 phoenix::tag::catch_
|
Chris@16
|
159 , proto::basic_default_domain
|
Chris@16
|
160 , catch_exception<Exception>
|
Chris@16
|
161 , Expr
|
Chris@16
|
162 >::type
|
Chris@16
|
163 catch_expr;
|
Chris@16
|
164 typedef phoenix::expression::try_catch<
|
Chris@16
|
165 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type
|
Chris@16
|
166 , catch_expr> gen_type;
|
Chris@16
|
167 typedef typename gen_type::type type;
|
Chris@16
|
168 static type
|
Chris@16
|
169 make(
|
Chris@16
|
170 TryCatch const& try_catch
|
Chris@16
|
171 , Expr const& catch_
|
Chris@16
|
172 )
|
Chris@16
|
173 {
|
Chris@16
|
174 return
|
Chris@16
|
175 gen_type::make(
|
Chris@16
|
176 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch)
|
Chris@16
|
177 , proto::make_expr<
|
Chris@16
|
178 phoenix::tag::catch_
|
Chris@16
|
179 , proto::basic_default_domain
|
Chris@16
|
180 >(catch_exception<Exception>(), catch_)
|
Chris@16
|
181 );
|
Chris@16
|
182 }
|
Chris@16
|
183 };
|
Chris@16
|
184
|
Chris@16
|
185 template <typename TryCatch, typename Expr>
|
Chris@16
|
186 struct catch_all_push_back<TryCatch, Expr, 4>
|
Chris@16
|
187 {
|
Chris@16
|
188 typedef
|
Chris@16
|
189 typename proto::result_of::make_expr<
|
Chris@16
|
190 phoenix::tag::catch_all
|
Chris@16
|
191 , proto::basic_default_domain
|
Chris@16
|
192 , Expr
|
Chris@16
|
193 >::type
|
Chris@16
|
194 catch_expr;
|
Chris@16
|
195 typedef phoenix::expression::try_catch<
|
Chris@16
|
196 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type
|
Chris@16
|
197 , catch_expr> gen_type;
|
Chris@16
|
198 typedef typename gen_type::type type;
|
Chris@16
|
199 static type
|
Chris@16
|
200 make(
|
Chris@16
|
201 TryCatch const& try_catch
|
Chris@16
|
202 , Expr const& catch_
|
Chris@16
|
203 )
|
Chris@16
|
204 {
|
Chris@16
|
205 return
|
Chris@16
|
206 gen_type::make(
|
Chris@16
|
207 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch)
|
Chris@16
|
208 , proto::make_expr<
|
Chris@16
|
209 phoenix::tag::catch_all
|
Chris@16
|
210 , proto::basic_default_domain
|
Chris@16
|
211 >(catch_)
|
Chris@16
|
212 );
|
Chris@16
|
213 }
|
Chris@16
|
214 };
|
Chris@16
|
215
|
Chris@16
|
216
|
Chris@16
|
217
|
Chris@16
|
218
|
Chris@16
|
219
|
Chris@16
|
220
|
Chris@16
|
221
|
Chris@16
|
222 template <typename TryCatch, typename Exception, typename Expr>
|
Chris@16
|
223 struct catch_push_back<TryCatch, Exception, Expr, 5>
|
Chris@16
|
224 {
|
Chris@16
|
225 typedef
|
Chris@16
|
226 typename proto::result_of::make_expr<
|
Chris@16
|
227 phoenix::tag::catch_
|
Chris@16
|
228 , proto::basic_default_domain
|
Chris@16
|
229 , catch_exception<Exception>
|
Chris@16
|
230 , Expr
|
Chris@16
|
231 >::type
|
Chris@16
|
232 catch_expr;
|
Chris@16
|
233 typedef phoenix::expression::try_catch<
|
Chris@16
|
234 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type
|
Chris@16
|
235 , catch_expr> gen_type;
|
Chris@16
|
236 typedef typename gen_type::type type;
|
Chris@16
|
237 static type
|
Chris@16
|
238 make(
|
Chris@16
|
239 TryCatch const& try_catch
|
Chris@16
|
240 , Expr const& catch_
|
Chris@16
|
241 )
|
Chris@16
|
242 {
|
Chris@16
|
243 return
|
Chris@16
|
244 gen_type::make(
|
Chris@16
|
245 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch)
|
Chris@16
|
246 , proto::make_expr<
|
Chris@16
|
247 phoenix::tag::catch_
|
Chris@16
|
248 , proto::basic_default_domain
|
Chris@16
|
249 >(catch_exception<Exception>(), catch_)
|
Chris@16
|
250 );
|
Chris@16
|
251 }
|
Chris@16
|
252 };
|
Chris@16
|
253
|
Chris@16
|
254 template <typename TryCatch, typename Expr>
|
Chris@16
|
255 struct catch_all_push_back<TryCatch, Expr, 5>
|
Chris@16
|
256 {
|
Chris@16
|
257 typedef
|
Chris@16
|
258 typename proto::result_of::make_expr<
|
Chris@16
|
259 phoenix::tag::catch_all
|
Chris@16
|
260 , proto::basic_default_domain
|
Chris@16
|
261 , Expr
|
Chris@16
|
262 >::type
|
Chris@16
|
263 catch_expr;
|
Chris@16
|
264 typedef phoenix::expression::try_catch<
|
Chris@16
|
265 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type
|
Chris@16
|
266 , catch_expr> gen_type;
|
Chris@16
|
267 typedef typename gen_type::type type;
|
Chris@16
|
268 static type
|
Chris@16
|
269 make(
|
Chris@16
|
270 TryCatch const& try_catch
|
Chris@16
|
271 , Expr const& catch_
|
Chris@16
|
272 )
|
Chris@16
|
273 {
|
Chris@16
|
274 return
|
Chris@16
|
275 gen_type::make(
|
Chris@16
|
276 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch)
|
Chris@16
|
277 , proto::make_expr<
|
Chris@16
|
278 phoenix::tag::catch_all
|
Chris@16
|
279 , proto::basic_default_domain
|
Chris@16
|
280 >(catch_)
|
Chris@16
|
281 );
|
Chris@16
|
282 }
|
Chris@16
|
283 };
|
Chris@16
|
284
|
Chris@16
|
285
|
Chris@16
|
286
|
Chris@16
|
287
|
Chris@16
|
288
|
Chris@16
|
289
|
Chris@16
|
290
|
Chris@16
|
291 template <typename TryCatch, typename Exception, typename Expr>
|
Chris@16
|
292 struct catch_push_back<TryCatch, Exception, Expr, 6>
|
Chris@16
|
293 {
|
Chris@16
|
294 typedef
|
Chris@16
|
295 typename proto::result_of::make_expr<
|
Chris@16
|
296 phoenix::tag::catch_
|
Chris@16
|
297 , proto::basic_default_domain
|
Chris@16
|
298 , catch_exception<Exception>
|
Chris@16
|
299 , Expr
|
Chris@16
|
300 >::type
|
Chris@16
|
301 catch_expr;
|
Chris@16
|
302 typedef phoenix::expression::try_catch<
|
Chris@16
|
303 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type
|
Chris@16
|
304 , catch_expr> gen_type;
|
Chris@16
|
305 typedef typename gen_type::type type;
|
Chris@16
|
306 static type
|
Chris@16
|
307 make(
|
Chris@16
|
308 TryCatch const& try_catch
|
Chris@16
|
309 , Expr const& catch_
|
Chris@16
|
310 )
|
Chris@16
|
311 {
|
Chris@16
|
312 return
|
Chris@16
|
313 gen_type::make(
|
Chris@16
|
314 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch)
|
Chris@16
|
315 , proto::make_expr<
|
Chris@16
|
316 phoenix::tag::catch_
|
Chris@16
|
317 , proto::basic_default_domain
|
Chris@16
|
318 >(catch_exception<Exception>(), catch_)
|
Chris@16
|
319 );
|
Chris@16
|
320 }
|
Chris@16
|
321 };
|
Chris@16
|
322
|
Chris@16
|
323 template <typename TryCatch, typename Expr>
|
Chris@16
|
324 struct catch_all_push_back<TryCatch, Expr, 6>
|
Chris@16
|
325 {
|
Chris@16
|
326 typedef
|
Chris@16
|
327 typename proto::result_of::make_expr<
|
Chris@16
|
328 phoenix::tag::catch_all
|
Chris@16
|
329 , proto::basic_default_domain
|
Chris@16
|
330 , Expr
|
Chris@16
|
331 >::type
|
Chris@16
|
332 catch_expr;
|
Chris@16
|
333 typedef phoenix::expression::try_catch<
|
Chris@16
|
334 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type
|
Chris@16
|
335 , catch_expr> gen_type;
|
Chris@16
|
336 typedef typename gen_type::type type;
|
Chris@16
|
337 static type
|
Chris@16
|
338 make(
|
Chris@16
|
339 TryCatch const& try_catch
|
Chris@16
|
340 , Expr const& catch_
|
Chris@16
|
341 )
|
Chris@16
|
342 {
|
Chris@16
|
343 return
|
Chris@16
|
344 gen_type::make(
|
Chris@16
|
345 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch)
|
Chris@16
|
346 , proto::make_expr<
|
Chris@16
|
347 phoenix::tag::catch_all
|
Chris@16
|
348 , proto::basic_default_domain
|
Chris@16
|
349 >(catch_)
|
Chris@16
|
350 );
|
Chris@16
|
351 }
|
Chris@16
|
352 };
|
Chris@16
|
353
|
Chris@16
|
354
|
Chris@16
|
355
|
Chris@16
|
356
|
Chris@16
|
357
|
Chris@16
|
358
|
Chris@16
|
359
|
Chris@16
|
360 template <typename TryCatch, typename Exception, typename Expr>
|
Chris@16
|
361 struct catch_push_back<TryCatch, Exception, Expr, 7>
|
Chris@16
|
362 {
|
Chris@16
|
363 typedef
|
Chris@16
|
364 typename proto::result_of::make_expr<
|
Chris@16
|
365 phoenix::tag::catch_
|
Chris@16
|
366 , proto::basic_default_domain
|
Chris@16
|
367 , catch_exception<Exception>
|
Chris@16
|
368 , Expr
|
Chris@16
|
369 >::type
|
Chris@16
|
370 catch_expr;
|
Chris@16
|
371 typedef phoenix::expression::try_catch<
|
Chris@16
|
372 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type
|
Chris@16
|
373 , catch_expr> gen_type;
|
Chris@16
|
374 typedef typename gen_type::type type;
|
Chris@16
|
375 static type
|
Chris@16
|
376 make(
|
Chris@16
|
377 TryCatch const& try_catch
|
Chris@16
|
378 , Expr const& catch_
|
Chris@16
|
379 )
|
Chris@16
|
380 {
|
Chris@16
|
381 return
|
Chris@16
|
382 gen_type::make(
|
Chris@16
|
383 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch)
|
Chris@16
|
384 , proto::make_expr<
|
Chris@16
|
385 phoenix::tag::catch_
|
Chris@16
|
386 , proto::basic_default_domain
|
Chris@16
|
387 >(catch_exception<Exception>(), catch_)
|
Chris@16
|
388 );
|
Chris@16
|
389 }
|
Chris@16
|
390 };
|
Chris@16
|
391
|
Chris@16
|
392 template <typename TryCatch, typename Expr>
|
Chris@16
|
393 struct catch_all_push_back<TryCatch, Expr, 7>
|
Chris@16
|
394 {
|
Chris@16
|
395 typedef
|
Chris@16
|
396 typename proto::result_of::make_expr<
|
Chris@16
|
397 phoenix::tag::catch_all
|
Chris@16
|
398 , proto::basic_default_domain
|
Chris@16
|
399 , Expr
|
Chris@16
|
400 >::type
|
Chris@16
|
401 catch_expr;
|
Chris@16
|
402 typedef phoenix::expression::try_catch<
|
Chris@16
|
403 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type
|
Chris@16
|
404 , catch_expr> gen_type;
|
Chris@16
|
405 typedef typename gen_type::type type;
|
Chris@16
|
406 static type
|
Chris@16
|
407 make(
|
Chris@16
|
408 TryCatch const& try_catch
|
Chris@16
|
409 , Expr const& catch_
|
Chris@16
|
410 )
|
Chris@16
|
411 {
|
Chris@16
|
412 return
|
Chris@16
|
413 gen_type::make(
|
Chris@16
|
414 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch)
|
Chris@16
|
415 , proto::make_expr<
|
Chris@16
|
416 phoenix::tag::catch_all
|
Chris@16
|
417 , proto::basic_default_domain
|
Chris@16
|
418 >(catch_)
|
Chris@16
|
419 );
|
Chris@16
|
420 }
|
Chris@16
|
421 };
|
Chris@16
|
422
|
Chris@16
|
423
|
Chris@16
|
424
|
Chris@16
|
425
|
Chris@16
|
426
|
Chris@16
|
427
|
Chris@16
|
428
|
Chris@16
|
429 template <typename TryCatch, typename Exception, typename Expr>
|
Chris@16
|
430 struct catch_push_back<TryCatch, Exception, Expr, 8>
|
Chris@16
|
431 {
|
Chris@16
|
432 typedef
|
Chris@16
|
433 typename proto::result_of::make_expr<
|
Chris@16
|
434 phoenix::tag::catch_
|
Chris@16
|
435 , proto::basic_default_domain
|
Chris@16
|
436 , catch_exception<Exception>
|
Chris@16
|
437 , Expr
|
Chris@16
|
438 >::type
|
Chris@16
|
439 catch_expr;
|
Chris@16
|
440 typedef phoenix::expression::try_catch<
|
Chris@16
|
441 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type
|
Chris@16
|
442 , catch_expr> gen_type;
|
Chris@16
|
443 typedef typename gen_type::type type;
|
Chris@16
|
444 static type
|
Chris@16
|
445 make(
|
Chris@16
|
446 TryCatch const& try_catch
|
Chris@16
|
447 , Expr const& catch_
|
Chris@16
|
448 )
|
Chris@16
|
449 {
|
Chris@16
|
450 return
|
Chris@16
|
451 gen_type::make(
|
Chris@16
|
452 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch)
|
Chris@16
|
453 , proto::make_expr<
|
Chris@16
|
454 phoenix::tag::catch_
|
Chris@16
|
455 , proto::basic_default_domain
|
Chris@16
|
456 >(catch_exception<Exception>(), catch_)
|
Chris@16
|
457 );
|
Chris@16
|
458 }
|
Chris@16
|
459 };
|
Chris@16
|
460
|
Chris@16
|
461 template <typename TryCatch, typename Expr>
|
Chris@16
|
462 struct catch_all_push_back<TryCatch, Expr, 8>
|
Chris@16
|
463 {
|
Chris@16
|
464 typedef
|
Chris@16
|
465 typename proto::result_of::make_expr<
|
Chris@16
|
466 phoenix::tag::catch_all
|
Chris@16
|
467 , proto::basic_default_domain
|
Chris@16
|
468 , Expr
|
Chris@16
|
469 >::type
|
Chris@16
|
470 catch_expr;
|
Chris@16
|
471 typedef phoenix::expression::try_catch<
|
Chris@16
|
472 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type
|
Chris@16
|
473 , catch_expr> gen_type;
|
Chris@16
|
474 typedef typename gen_type::type type;
|
Chris@16
|
475 static type
|
Chris@16
|
476 make(
|
Chris@16
|
477 TryCatch const& try_catch
|
Chris@16
|
478 , Expr const& catch_
|
Chris@16
|
479 )
|
Chris@16
|
480 {
|
Chris@16
|
481 return
|
Chris@16
|
482 gen_type::make(
|
Chris@16
|
483 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch)
|
Chris@16
|
484 , proto::make_expr<
|
Chris@16
|
485 phoenix::tag::catch_all
|
Chris@16
|
486 , proto::basic_default_domain
|
Chris@16
|
487 >(catch_)
|
Chris@16
|
488 );
|
Chris@16
|
489 }
|
Chris@16
|
490 };
|
Chris@16
|
491
|
Chris@16
|
492
|
Chris@16
|
493
|
Chris@16
|
494
|
Chris@16
|
495
|
Chris@16
|
496
|
Chris@16
|
497
|
Chris@16
|
498 template <typename TryCatch, typename Exception, typename Expr>
|
Chris@16
|
499 struct catch_push_back<TryCatch, Exception, Expr, 9>
|
Chris@16
|
500 {
|
Chris@16
|
501 typedef
|
Chris@16
|
502 typename proto::result_of::make_expr<
|
Chris@16
|
503 phoenix::tag::catch_
|
Chris@16
|
504 , proto::basic_default_domain
|
Chris@16
|
505 , catch_exception<Exception>
|
Chris@16
|
506 , Expr
|
Chris@16
|
507 >::type
|
Chris@16
|
508 catch_expr;
|
Chris@16
|
509 typedef phoenix::expression::try_catch<
|
Chris@16
|
510 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type
|
Chris@16
|
511 , catch_expr> gen_type;
|
Chris@16
|
512 typedef typename gen_type::type type;
|
Chris@16
|
513 static type
|
Chris@16
|
514 make(
|
Chris@16
|
515 TryCatch const& try_catch
|
Chris@16
|
516 , Expr const& catch_
|
Chris@16
|
517 )
|
Chris@16
|
518 {
|
Chris@16
|
519 return
|
Chris@16
|
520 gen_type::make(
|
Chris@16
|
521 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch)
|
Chris@16
|
522 , proto::make_expr<
|
Chris@16
|
523 phoenix::tag::catch_
|
Chris@16
|
524 , proto::basic_default_domain
|
Chris@16
|
525 >(catch_exception<Exception>(), catch_)
|
Chris@16
|
526 );
|
Chris@16
|
527 }
|
Chris@16
|
528 };
|
Chris@16
|
529
|
Chris@16
|
530 template <typename TryCatch, typename Expr>
|
Chris@16
|
531 struct catch_all_push_back<TryCatch, Expr, 9>
|
Chris@16
|
532 {
|
Chris@16
|
533 typedef
|
Chris@16
|
534 typename proto::result_of::make_expr<
|
Chris@16
|
535 phoenix::tag::catch_all
|
Chris@16
|
536 , proto::basic_default_domain
|
Chris@16
|
537 , Expr
|
Chris@16
|
538 >::type
|
Chris@16
|
539 catch_expr;
|
Chris@16
|
540 typedef phoenix::expression::try_catch<
|
Chris@16
|
541 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type
|
Chris@16
|
542 , catch_expr> gen_type;
|
Chris@16
|
543 typedef typename gen_type::type type;
|
Chris@16
|
544 static type
|
Chris@16
|
545 make(
|
Chris@16
|
546 TryCatch const& try_catch
|
Chris@16
|
547 , Expr const& catch_
|
Chris@16
|
548 )
|
Chris@16
|
549 {
|
Chris@16
|
550 return
|
Chris@16
|
551 gen_type::make(
|
Chris@16
|
552 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch)
|
Chris@16
|
553 , proto::make_expr<
|
Chris@16
|
554 phoenix::tag::catch_all
|
Chris@16
|
555 , proto::basic_default_domain
|
Chris@16
|
556 >(catch_)
|
Chris@16
|
557 );
|
Chris@16
|
558 }
|
Chris@16
|
559 };
|
Chris@16
|
560
|
Chris@16
|
561
|
Chris@16
|
562
|
Chris@16
|
563
|
Chris@16
|
564
|
Chris@16
|
565
|
Chris@16
|
566
|
Chris@16
|
567 template <typename TryCatch, typename Exception, typename Expr>
|
Chris@16
|
568 struct catch_push_back<TryCatch, Exception, Expr, 10>
|
Chris@16
|
569 {
|
Chris@16
|
570 typedef
|
Chris@16
|
571 typename proto::result_of::make_expr<
|
Chris@16
|
572 phoenix::tag::catch_
|
Chris@16
|
573 , proto::basic_default_domain
|
Chris@16
|
574 , catch_exception<Exception>
|
Chris@16
|
575 , Expr
|
Chris@16
|
576 >::type
|
Chris@16
|
577 catch_expr;
|
Chris@16
|
578 typedef phoenix::expression::try_catch<
|
Chris@16
|
579 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type
|
Chris@16
|
580 , catch_expr> gen_type;
|
Chris@16
|
581 typedef typename gen_type::type type;
|
Chris@16
|
582 static type
|
Chris@16
|
583 make(
|
Chris@16
|
584 TryCatch const& try_catch
|
Chris@16
|
585 , Expr const& catch_
|
Chris@16
|
586 )
|
Chris@16
|
587 {
|
Chris@16
|
588 return
|
Chris@16
|
589 gen_type::make(
|
Chris@16
|
590 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch)
|
Chris@16
|
591 , proto::make_expr<
|
Chris@16
|
592 phoenix::tag::catch_
|
Chris@16
|
593 , proto::basic_default_domain
|
Chris@16
|
594 >(catch_exception<Exception>(), catch_)
|
Chris@16
|
595 );
|
Chris@16
|
596 }
|
Chris@16
|
597 };
|
Chris@16
|
598
|
Chris@16
|
599 template <typename TryCatch, typename Expr>
|
Chris@16
|
600 struct catch_all_push_back<TryCatch, Expr, 10>
|
Chris@16
|
601 {
|
Chris@16
|
602 typedef
|
Chris@16
|
603 typename proto::result_of::make_expr<
|
Chris@16
|
604 phoenix::tag::catch_all
|
Chris@16
|
605 , proto::basic_default_domain
|
Chris@16
|
606 , Expr
|
Chris@16
|
607 >::type
|
Chris@16
|
608 catch_expr;
|
Chris@16
|
609 typedef phoenix::expression::try_catch<
|
Chris@16
|
610 typename proto::result_of::child_c<TryCatch, 0>::type , typename proto::result_of::child_c<TryCatch, 1>::type , typename proto::result_of::child_c<TryCatch, 2>::type , typename proto::result_of::child_c<TryCatch, 3>::type , typename proto::result_of::child_c<TryCatch, 4>::type , typename proto::result_of::child_c<TryCatch, 5>::type , typename proto::result_of::child_c<TryCatch, 6>::type , typename proto::result_of::child_c<TryCatch, 7>::type , typename proto::result_of::child_c<TryCatch, 8>::type , typename proto::result_of::child_c<TryCatch, 9>::type
|
Chris@16
|
611 , catch_expr> gen_type;
|
Chris@16
|
612 typedef typename gen_type::type type;
|
Chris@16
|
613 static type
|
Chris@16
|
614 make(
|
Chris@16
|
615 TryCatch const& try_catch
|
Chris@16
|
616 , Expr const& catch_
|
Chris@16
|
617 )
|
Chris@16
|
618 {
|
Chris@16
|
619 return
|
Chris@16
|
620 gen_type::make(
|
Chris@16
|
621 proto::child_c< 0>(try_catch) , proto::child_c< 1>(try_catch) , proto::child_c< 2>(try_catch) , proto::child_c< 3>(try_catch) , proto::child_c< 4>(try_catch) , proto::child_c< 5>(try_catch) , proto::child_c< 6>(try_catch) , proto::child_c< 7>(try_catch) , proto::child_c< 8>(try_catch) , proto::child_c< 9>(try_catch)
|
Chris@16
|
622 , proto::make_expr<
|
Chris@16
|
623 phoenix::tag::catch_all
|
Chris@16
|
624 , proto::basic_default_domain
|
Chris@16
|
625 >(catch_)
|
Chris@16
|
626 );
|
Chris@16
|
627 }
|
Chris@16
|
628 };
|
Chris@16
|
629
|