1 /*==============================================================================
2     Copyright (c) 2005-2010 Joel de Guzman
3     Copyright (c) 2010 Thomas Heller
4 
5     Distributed under the Boost Software License, Version 1.0. (See accompanying
6     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 ==============================================================================*/
8 
9 
10 
11 
12 
13 
14 
15         template <
16             typename Try
17 
18 
19         >
20         struct try_catch<
21             Try
22 
23 
24         >
25             : expr_ext<
26                 try_catch_actor
27               , tag::try_catch
28               , Try
29 
30             >
31         {};
32 
33 
34 
35 
36 
37 
38 
39 
40         template <
41             typename Try
42             ,
43             typename A0
44         >
45         struct try_catch<
46             Try
47             ,
48             A0
49         >
50             : expr_ext<
51                 try_catch_actor
52               , tag::try_catch
53               , Try
54               , A0
55             >
56         {};
57 
58 
59 
60 
61 
62 
63 
64 
65         template <
66             typename Try
67             ,
68             typename A0 , typename A1
69         >
70         struct try_catch<
71             Try
72             ,
73             A0 , A1
74         >
75             : expr_ext<
76                 try_catch_actor
77               , tag::try_catch
78               , Try
79               , A0 , A1
80             >
81         {};
82 
83 
84 
85 
86 
87 
88 
89 
90         template <
91             typename Try
92             ,
93             typename A0 , typename A1 , typename A2
94         >
95         struct try_catch<
96             Try
97             ,
98             A0 , A1 , A2
99         >
100             : expr_ext<
101                 try_catch_actor
102               , tag::try_catch
103               , Try
104               , A0 , A1 , A2
105             >
106         {};
107 
108 
109 
110 
111 
112 
113 
114 
115         template <
116             typename Try
117             ,
118             typename A0 , typename A1 , typename A2 , typename A3
119         >
120         struct try_catch<
121             Try
122             ,
123             A0 , A1 , A2 , A3
124         >
125             : expr_ext<
126                 try_catch_actor
127               , tag::try_catch
128               , Try
129               , A0 , A1 , A2 , A3
130             >
131         {};
132 
133 
134 
135 
136 
137 
138 
139 
140         template <
141             typename Try
142             ,
143             typename A0 , typename A1 , typename A2 , typename A3 , typename A4
144         >
145         struct try_catch<
146             Try
147             ,
148             A0 , A1 , A2 , A3 , A4
149         >
150             : expr_ext<
151                 try_catch_actor
152               , tag::try_catch
153               , Try
154               , A0 , A1 , A2 , A3 , A4
155             >
156         {};
157 
158 
159 
160 
161 
162 
163 
164 
165         template <
166             typename Try
167             ,
168             typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5
169         >
170         struct try_catch<
171             Try
172             ,
173             A0 , A1 , A2 , A3 , A4 , A5
174         >
175             : expr_ext<
176                 try_catch_actor
177               , tag::try_catch
178               , Try
179               , A0 , A1 , A2 , A3 , A4 , A5
180             >
181         {};
182 
183 
184 
185 
186 
187 
188 
189 
190         template <
191             typename Try
192             ,
193             typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6
194         >
195         struct try_catch<
196             Try
197             ,
198             A0 , A1 , A2 , A3 , A4 , A5 , A6
199         >
200             : expr_ext<
201                 try_catch_actor
202               , tag::try_catch
203               , Try
204               , A0 , A1 , A2 , A3 , A4 , A5 , A6
205             >
206         {};
207 
208 
209 
210 
211 
212 
213 
214 
215         template <
216             typename Try
217             ,
218             typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7
219         >
220         struct try_catch<
221             Try
222             ,
223             A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
224         >
225             : expr_ext<
226                 try_catch_actor
227               , tag::try_catch
228               , Try
229               , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
230             >
231         {};
232 
233 
234 
235 
236 
237 
238 
239 
240         template <
241             typename Try
242             ,
243             typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8
244         >
245         struct try_catch<
246             Try
247             ,
248             A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
249         >
250             : expr_ext<
251                 try_catch_actor
252               , tag::try_catch
253               , Try
254               , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
255             >
256         {};
257 
258 
259 
260 
261 
262 
263 
264 
265         template <
266             typename Try
267             ,
268             typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9
269         >
270         struct try_catch<
271             Try
272             ,
273             A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
274         >
275             : expr_ext<
276                 try_catch_actor
277               , tag::try_catch
278               , Try
279               , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
280             >
281         {};
282 
283 
284 
285 
286 
287 
288 
289 
290         template <
291             typename Try
292             ,
293             typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10
294         >
295         struct try_catch<
296             Try
297             ,
298             A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
299         >
300             : expr_ext<
301                 try_catch_actor
302               , tag::try_catch
303               , Try
304               , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
305             >
306         {};
307 
308 
309 
310 
311 
312 
313 
314 
315         template <
316             typename Try
317             ,
318             typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11
319         >
320         struct try_catch<
321             Try
322             ,
323             A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
324         >
325             : expr_ext<
326                 try_catch_actor
327               , tag::try_catch
328               , Try
329               , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
330             >
331         {};
332 
333 
334 
335 
336 
337 
338 
339 
340         template <
341             typename Try
342             ,
343             typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12
344         >
345         struct try_catch<
346             Try
347             ,
348             A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
349         >
350             : expr_ext<
351                 try_catch_actor
352               , tag::try_catch
353               , Try
354               , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
355             >
356         {};
357 
358 
359 
360 
361 
362 
363 
364 
365         template <
366             typename Try
367             ,
368             typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13
369         >
370         struct try_catch<
371             Try
372             ,
373             A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
374         >
375             : expr_ext<
376                 try_catch_actor
377               , tag::try_catch
378               , Try
379               , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
380             >
381         {};
382 
383 
384 
385 
386 
387 
388 
389 
390         template <
391             typename Try
392             ,
393             typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14
394         >
395         struct try_catch<
396             Try
397             ,
398             A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
399         >
400             : expr_ext<
401                 try_catch_actor
402               , tag::try_catch
403               , Try
404               , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
405             >
406         {};
407 
408 
409 
410 
411 
412 
413 
414 
415         template <
416             typename Try
417             ,
418             typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15
419         >
420         struct try_catch<
421             Try
422             ,
423             A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
424         >
425             : expr_ext<
426                 try_catch_actor
427               , tag::try_catch
428               , Try
429               , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
430             >
431         {};
432 
433 
434 
435 
436 
437 
438 
439 
440         template <
441             typename Try
442             ,
443             typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16
444         >
445         struct try_catch<
446             Try
447             ,
448             A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
449         >
450             : expr_ext<
451                 try_catch_actor
452               , tag::try_catch
453               , Try
454               , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
455             >
456         {};
457 
458 
459 
460 
461 
462 
463 
464 
465         template <
466             typename Try
467             ,
468             typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17
469         >
470         struct try_catch<
471             Try
472             ,
473             A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
474         >
475             : expr_ext<
476                 try_catch_actor
477               , tag::try_catch
478               , Try
479               , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
480             >
481         {};
482 
483 
484 
485 
486 
487 
488 
489 
490         template <
491             typename Try
492             ,
493             typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18
494         >
495         struct try_catch<
496             Try
497             ,
498             A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
499         >
500             : expr_ext<
501                 try_catch_actor
502               , tag::try_catch
503               , Try
504               , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
505             >
506         {};
507 
508 
509 
510 
511 
512 
513 
514 
515         template <
516             typename Try
517             ,
518             typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19
519         >
520         struct try_catch<
521             Try
522             ,
523             A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
524         >
525             : expr_ext<
526                 try_catch_actor
527               , tag::try_catch
528               , Try
529               , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
530             >
531         {};
532 
533