xref: /aosp_15_r20/external/grpc-grpc/src/core/lib/gprpp/if_list.h (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1 // Copyright 2023 gRPC authors.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 //
16 // Automatically generated by tools/codegen/core/gen_if_list.py
17 //
18 
19 #ifndef GRPC_SRC_CORE_LIB_GPRPP_IF_LIST_H
20 #define GRPC_SRC_CORE_LIB_GPRPP_IF_LIST_H
21 
22 #include <grpc/support/port_platform.h>
23 
24 namespace grpc_core {
25 
26 template <typename CheckArg, typename ActionArg, typename ActionFail,
27           typename Check0, typename Action0>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Action0 action0)28 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
29             Check0 check0, Action0 action0) {
30   if (check0(input)) return action0(action_arg);
31   return action_fail(action_arg);
32 }
33 
34 template <typename CheckArg, typename ActionArg, typename ActionFail,
35           typename Check0, typename Check1, typename Action0, typename Action1>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Action0 action0,Action1 action1)36 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
37             Check0 check0, Check1 check1, Action0 action0, Action1 action1) {
38   if (check0(input)) return action0(action_arg);
39   if (check1(input)) return action1(action_arg);
40   return action_fail(action_arg);
41 }
42 
43 template <typename CheckArg, typename ActionArg, typename ActionFail,
44           typename Check0, typename Check1, typename Check2, typename Action0,
45           typename Action1, typename Action2>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Action0 action0,Action1 action1,Action2 action2)46 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
47             Check0 check0, Check1 check1, Check2 check2, Action0 action0,
48             Action1 action1, Action2 action2) {
49   if (check0(input)) return action0(action_arg);
50   if (check1(input)) return action1(action_arg);
51   if (check2(input)) return action2(action_arg);
52   return action_fail(action_arg);
53 }
54 
55 template <typename CheckArg, typename ActionArg, typename ActionFail,
56           typename Check0, typename Check1, typename Check2, typename Check3,
57           typename Action0, typename Action1, typename Action2,
58           typename Action3>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Action0 action0,Action1 action1,Action2 action2,Action3 action3)59 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
60             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
61             Action0 action0, Action1 action1, Action2 action2,
62             Action3 action3) {
63   if (check0(input)) return action0(action_arg);
64   if (check1(input)) return action1(action_arg);
65   if (check2(input)) return action2(action_arg);
66   if (check3(input)) return action3(action_arg);
67   return action_fail(action_arg);
68 }
69 
70 template <typename CheckArg, typename ActionArg, typename ActionFail,
71           typename Check0, typename Check1, typename Check2, typename Check3,
72           typename Check4, typename Action0, typename Action1, typename Action2,
73           typename Action3, typename Action4>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4)74 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
75             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
76             Check4 check4, Action0 action0, Action1 action1, Action2 action2,
77             Action3 action3, Action4 action4) {
78   if (check0(input)) return action0(action_arg);
79   if (check1(input)) return action1(action_arg);
80   if (check2(input)) return action2(action_arg);
81   if (check3(input)) return action3(action_arg);
82   if (check4(input)) return action4(action_arg);
83   return action_fail(action_arg);
84 }
85 
86 template <typename CheckArg, typename ActionArg, typename ActionFail,
87           typename Check0, typename Check1, typename Check2, typename Check3,
88           typename Check4, typename Check5, typename Action0, typename Action1,
89           typename Action2, typename Action3, typename Action4,
90           typename Action5>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5)91 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
92             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
93             Check4 check4, Check5 check5, Action0 action0, Action1 action1,
94             Action2 action2, Action3 action3, Action4 action4,
95             Action5 action5) {
96   if (check0(input)) return action0(action_arg);
97   if (check1(input)) return action1(action_arg);
98   if (check2(input)) return action2(action_arg);
99   if (check3(input)) return action3(action_arg);
100   if (check4(input)) return action4(action_arg);
101   if (check5(input)) return action5(action_arg);
102   return action_fail(action_arg);
103 }
104 
105 template <typename CheckArg, typename ActionArg, typename ActionFail,
106           typename Check0, typename Check1, typename Check2, typename Check3,
107           typename Check4, typename Check5, typename Check6, typename Action0,
108           typename Action1, typename Action2, typename Action3,
109           typename Action4, typename Action5, typename Action6>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6)110 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
111             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
112             Check4 check4, Check5 check5, Check6 check6, Action0 action0,
113             Action1 action1, Action2 action2, Action3 action3, Action4 action4,
114             Action5 action5, Action6 action6) {
115   if (check0(input)) return action0(action_arg);
116   if (check1(input)) return action1(action_arg);
117   if (check2(input)) return action2(action_arg);
118   if (check3(input)) return action3(action_arg);
119   if (check4(input)) return action4(action_arg);
120   if (check5(input)) return action5(action_arg);
121   if (check6(input)) return action6(action_arg);
122   return action_fail(action_arg);
123 }
124 
125 template <typename CheckArg, typename ActionArg, typename ActionFail,
126           typename Check0, typename Check1, typename Check2, typename Check3,
127           typename Check4, typename Check5, typename Check6, typename Check7,
128           typename Action0, typename Action1, typename Action2,
129           typename Action3, typename Action4, typename Action5,
130           typename Action6, typename Action7>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7)131 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
132             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
133             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
134             Action0 action0, Action1 action1, Action2 action2, Action3 action3,
135             Action4 action4, Action5 action5, Action6 action6,
136             Action7 action7) {
137   if (check0(input)) return action0(action_arg);
138   if (check1(input)) return action1(action_arg);
139   if (check2(input)) return action2(action_arg);
140   if (check3(input)) return action3(action_arg);
141   if (check4(input)) return action4(action_arg);
142   if (check5(input)) return action5(action_arg);
143   if (check6(input)) return action6(action_arg);
144   if (check7(input)) return action7(action_arg);
145   return action_fail(action_arg);
146 }
147 
148 template <typename CheckArg, typename ActionArg, typename ActionFail,
149           typename Check0, typename Check1, typename Check2, typename Check3,
150           typename Check4, typename Check5, typename Check6, typename Check7,
151           typename Check8, typename Action0, typename Action1, typename Action2,
152           typename Action3, typename Action4, typename Action5,
153           typename Action6, typename Action7, typename Action8>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8)154 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
155             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
156             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
157             Check8 check8, Action0 action0, Action1 action1, Action2 action2,
158             Action3 action3, Action4 action4, Action5 action5, Action6 action6,
159             Action7 action7, Action8 action8) {
160   if (check0(input)) return action0(action_arg);
161   if (check1(input)) return action1(action_arg);
162   if (check2(input)) return action2(action_arg);
163   if (check3(input)) return action3(action_arg);
164   if (check4(input)) return action4(action_arg);
165   if (check5(input)) return action5(action_arg);
166   if (check6(input)) return action6(action_arg);
167   if (check7(input)) return action7(action_arg);
168   if (check8(input)) return action8(action_arg);
169   return action_fail(action_arg);
170 }
171 
172 template <typename CheckArg, typename ActionArg, typename ActionFail,
173           typename Check0, typename Check1, typename Check2, typename Check3,
174           typename Check4, typename Check5, typename Check6, typename Check7,
175           typename Check8, typename Check9, typename Action0, typename Action1,
176           typename Action2, typename Action3, typename Action4,
177           typename Action5, typename Action6, typename Action7,
178           typename Action8, typename Action9>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9)179 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
180             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
181             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
182             Check8 check8, Check9 check9, Action0 action0, Action1 action1,
183             Action2 action2, Action3 action3, Action4 action4, Action5 action5,
184             Action6 action6, Action7 action7, Action8 action8,
185             Action9 action9) {
186   if (check0(input)) return action0(action_arg);
187   if (check1(input)) return action1(action_arg);
188   if (check2(input)) return action2(action_arg);
189   if (check3(input)) return action3(action_arg);
190   if (check4(input)) return action4(action_arg);
191   if (check5(input)) return action5(action_arg);
192   if (check6(input)) return action6(action_arg);
193   if (check7(input)) return action7(action_arg);
194   if (check8(input)) return action8(action_arg);
195   if (check9(input)) return action9(action_arg);
196   return action_fail(action_arg);
197 }
198 
199 template <typename CheckArg, typename ActionArg, typename ActionFail,
200           typename Check0, typename Check1, typename Check2, typename Check3,
201           typename Check4, typename Check5, typename Check6, typename Check7,
202           typename Check8, typename Check9, typename Check10, typename Action0,
203           typename Action1, typename Action2, typename Action3,
204           typename Action4, typename Action5, typename Action6,
205           typename Action7, typename Action8, typename Action9,
206           typename Action10>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10)207 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
208             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
209             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
210             Check8 check8, Check9 check9, Check10 check10, Action0 action0,
211             Action1 action1, Action2 action2, Action3 action3, Action4 action4,
212             Action5 action5, Action6 action6, Action7 action7, Action8 action8,
213             Action9 action9, Action10 action10) {
214   if (check0(input)) return action0(action_arg);
215   if (check1(input)) return action1(action_arg);
216   if (check2(input)) return action2(action_arg);
217   if (check3(input)) return action3(action_arg);
218   if (check4(input)) return action4(action_arg);
219   if (check5(input)) return action5(action_arg);
220   if (check6(input)) return action6(action_arg);
221   if (check7(input)) return action7(action_arg);
222   if (check8(input)) return action8(action_arg);
223   if (check9(input)) return action9(action_arg);
224   if (check10(input)) return action10(action_arg);
225   return action_fail(action_arg);
226 }
227 
228 template <typename CheckArg, typename ActionArg, typename ActionFail,
229           typename Check0, typename Check1, typename Check2, typename Check3,
230           typename Check4, typename Check5, typename Check6, typename Check7,
231           typename Check8, typename Check9, typename Check10, typename Check11,
232           typename Action0, typename Action1, typename Action2,
233           typename Action3, typename Action4, typename Action5,
234           typename Action6, typename Action7, typename Action8,
235           typename Action9, typename Action10, typename Action11>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11)236 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
237             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
238             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
239             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
240             Action0 action0, Action1 action1, Action2 action2, Action3 action3,
241             Action4 action4, Action5 action5, Action6 action6, Action7 action7,
242             Action8 action8, Action9 action9, Action10 action10,
243             Action11 action11) {
244   if (check0(input)) return action0(action_arg);
245   if (check1(input)) return action1(action_arg);
246   if (check2(input)) return action2(action_arg);
247   if (check3(input)) return action3(action_arg);
248   if (check4(input)) return action4(action_arg);
249   if (check5(input)) return action5(action_arg);
250   if (check6(input)) return action6(action_arg);
251   if (check7(input)) return action7(action_arg);
252   if (check8(input)) return action8(action_arg);
253   if (check9(input)) return action9(action_arg);
254   if (check10(input)) return action10(action_arg);
255   if (check11(input)) return action11(action_arg);
256   return action_fail(action_arg);
257 }
258 
259 template <typename CheckArg, typename ActionArg, typename ActionFail,
260           typename Check0, typename Check1, typename Check2, typename Check3,
261           typename Check4, typename Check5, typename Check6, typename Check7,
262           typename Check8, typename Check9, typename Check10, typename Check11,
263           typename Check12, typename Action0, typename Action1,
264           typename Action2, typename Action3, typename Action4,
265           typename Action5, typename Action6, typename Action7,
266           typename Action8, typename Action9, typename Action10,
267           typename Action11, typename Action12>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12)268 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
269             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
270             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
271             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
272             Check12 check12, Action0 action0, Action1 action1, Action2 action2,
273             Action3 action3, Action4 action4, Action5 action5, Action6 action6,
274             Action7 action7, Action8 action8, Action9 action9,
275             Action10 action10, Action11 action11, Action12 action12) {
276   if (check0(input)) return action0(action_arg);
277   if (check1(input)) return action1(action_arg);
278   if (check2(input)) return action2(action_arg);
279   if (check3(input)) return action3(action_arg);
280   if (check4(input)) return action4(action_arg);
281   if (check5(input)) return action5(action_arg);
282   if (check6(input)) return action6(action_arg);
283   if (check7(input)) return action7(action_arg);
284   if (check8(input)) return action8(action_arg);
285   if (check9(input)) return action9(action_arg);
286   if (check10(input)) return action10(action_arg);
287   if (check11(input)) return action11(action_arg);
288   if (check12(input)) return action12(action_arg);
289   return action_fail(action_arg);
290 }
291 
292 template <
293     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
294     typename Check1, typename Check2, typename Check3, typename Check4,
295     typename Check5, typename Check6, typename Check7, typename Check8,
296     typename Check9, typename Check10, typename Check11, typename Check12,
297     typename Check13, typename Action0, typename Action1, typename Action2,
298     typename Action3, typename Action4, typename Action5, typename Action6,
299     typename Action7, typename Action8, typename Action9, typename Action10,
300     typename Action11, typename Action12, typename Action13>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13)301 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
302             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
303             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
304             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
305             Check12 check12, Check13 check13, Action0 action0, Action1 action1,
306             Action2 action2, Action3 action3, Action4 action4, Action5 action5,
307             Action6 action6, Action7 action7, Action8 action8, Action9 action9,
308             Action10 action10, Action11 action11, Action12 action12,
309             Action13 action13) {
310   if (check0(input)) return action0(action_arg);
311   if (check1(input)) return action1(action_arg);
312   if (check2(input)) return action2(action_arg);
313   if (check3(input)) return action3(action_arg);
314   if (check4(input)) return action4(action_arg);
315   if (check5(input)) return action5(action_arg);
316   if (check6(input)) return action6(action_arg);
317   if (check7(input)) return action7(action_arg);
318   if (check8(input)) return action8(action_arg);
319   if (check9(input)) return action9(action_arg);
320   if (check10(input)) return action10(action_arg);
321   if (check11(input)) return action11(action_arg);
322   if (check12(input)) return action12(action_arg);
323   if (check13(input)) return action13(action_arg);
324   return action_fail(action_arg);
325 }
326 
327 template <typename CheckArg, typename ActionArg, typename ActionFail,
328           typename Check0, typename Check1, typename Check2, typename Check3,
329           typename Check4, typename Check5, typename Check6, typename Check7,
330           typename Check8, typename Check9, typename Check10, typename Check11,
331           typename Check12, typename Check13, typename Check14,
332           typename Action0, typename Action1, typename Action2,
333           typename Action3, typename Action4, typename Action5,
334           typename Action6, typename Action7, typename Action8,
335           typename Action9, typename Action10, typename Action11,
336           typename Action12, typename Action13, typename Action14>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14)337 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
338             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
339             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
340             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
341             Check12 check12, Check13 check13, Check14 check14, Action0 action0,
342             Action1 action1, Action2 action2, Action3 action3, Action4 action4,
343             Action5 action5, Action6 action6, Action7 action7, Action8 action8,
344             Action9 action9, Action10 action10, Action11 action11,
345             Action12 action12, Action13 action13, Action14 action14) {
346   if (check0(input)) return action0(action_arg);
347   if (check1(input)) return action1(action_arg);
348   if (check2(input)) return action2(action_arg);
349   if (check3(input)) return action3(action_arg);
350   if (check4(input)) return action4(action_arg);
351   if (check5(input)) return action5(action_arg);
352   if (check6(input)) return action6(action_arg);
353   if (check7(input)) return action7(action_arg);
354   if (check8(input)) return action8(action_arg);
355   if (check9(input)) return action9(action_arg);
356   if (check10(input)) return action10(action_arg);
357   if (check11(input)) return action11(action_arg);
358   if (check12(input)) return action12(action_arg);
359   if (check13(input)) return action13(action_arg);
360   if (check14(input)) return action14(action_arg);
361   return action_fail(action_arg);
362 }
363 
364 template <
365     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
366     typename Check1, typename Check2, typename Check3, typename Check4,
367     typename Check5, typename Check6, typename Check7, typename Check8,
368     typename Check9, typename Check10, typename Check11, typename Check12,
369     typename Check13, typename Check14, typename Check15, typename Action0,
370     typename Action1, typename Action2, typename Action3, typename Action4,
371     typename Action5, typename Action6, typename Action7, typename Action8,
372     typename Action9, typename Action10, typename Action11, typename Action12,
373     typename Action13, typename Action14, typename Action15>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15)374 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
375             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
376             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
377             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
378             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
379             Action0 action0, Action1 action1, Action2 action2, Action3 action3,
380             Action4 action4, Action5 action5, Action6 action6, Action7 action7,
381             Action8 action8, Action9 action9, Action10 action10,
382             Action11 action11, Action12 action12, Action13 action13,
383             Action14 action14, Action15 action15) {
384   if (check0(input)) return action0(action_arg);
385   if (check1(input)) return action1(action_arg);
386   if (check2(input)) return action2(action_arg);
387   if (check3(input)) return action3(action_arg);
388   if (check4(input)) return action4(action_arg);
389   if (check5(input)) return action5(action_arg);
390   if (check6(input)) return action6(action_arg);
391   if (check7(input)) return action7(action_arg);
392   if (check8(input)) return action8(action_arg);
393   if (check9(input)) return action9(action_arg);
394   if (check10(input)) return action10(action_arg);
395   if (check11(input)) return action11(action_arg);
396   if (check12(input)) return action12(action_arg);
397   if (check13(input)) return action13(action_arg);
398   if (check14(input)) return action14(action_arg);
399   if (check15(input)) return action15(action_arg);
400   return action_fail(action_arg);
401 }
402 
403 template <
404     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
405     typename Check1, typename Check2, typename Check3, typename Check4,
406     typename Check5, typename Check6, typename Check7, typename Check8,
407     typename Check9, typename Check10, typename Check11, typename Check12,
408     typename Check13, typename Check14, typename Check15, typename Check16,
409     typename Action0, typename Action1, typename Action2, typename Action3,
410     typename Action4, typename Action5, typename Action6, typename Action7,
411     typename Action8, typename Action9, typename Action10, typename Action11,
412     typename Action12, typename Action13, typename Action14, typename Action15,
413     typename Action16>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16)414 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
415             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
416             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
417             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
418             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
419             Check16 check16, Action0 action0, Action1 action1, Action2 action2,
420             Action3 action3, Action4 action4, Action5 action5, Action6 action6,
421             Action7 action7, Action8 action8, Action9 action9,
422             Action10 action10, Action11 action11, Action12 action12,
423             Action13 action13, Action14 action14, Action15 action15,
424             Action16 action16) {
425   if (check0(input)) return action0(action_arg);
426   if (check1(input)) return action1(action_arg);
427   if (check2(input)) return action2(action_arg);
428   if (check3(input)) return action3(action_arg);
429   if (check4(input)) return action4(action_arg);
430   if (check5(input)) return action5(action_arg);
431   if (check6(input)) return action6(action_arg);
432   if (check7(input)) return action7(action_arg);
433   if (check8(input)) return action8(action_arg);
434   if (check9(input)) return action9(action_arg);
435   if (check10(input)) return action10(action_arg);
436   if (check11(input)) return action11(action_arg);
437   if (check12(input)) return action12(action_arg);
438   if (check13(input)) return action13(action_arg);
439   if (check14(input)) return action14(action_arg);
440   if (check15(input)) return action15(action_arg);
441   if (check16(input)) return action16(action_arg);
442   return action_fail(action_arg);
443 }
444 
445 template <
446     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
447     typename Check1, typename Check2, typename Check3, typename Check4,
448     typename Check5, typename Check6, typename Check7, typename Check8,
449     typename Check9, typename Check10, typename Check11, typename Check12,
450     typename Check13, typename Check14, typename Check15, typename Check16,
451     typename Check17, typename Action0, typename Action1, typename Action2,
452     typename Action3, typename Action4, typename Action5, typename Action6,
453     typename Action7, typename Action8, typename Action9, typename Action10,
454     typename Action11, typename Action12, typename Action13, typename Action14,
455     typename Action15, typename Action16, typename Action17>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17)456 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
457             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
458             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
459             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
460             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
461             Check16 check16, Check17 check17, Action0 action0, Action1 action1,
462             Action2 action2, Action3 action3, Action4 action4, Action5 action5,
463             Action6 action6, Action7 action7, Action8 action8, Action9 action9,
464             Action10 action10, Action11 action11, Action12 action12,
465             Action13 action13, Action14 action14, Action15 action15,
466             Action16 action16, Action17 action17) {
467   if (check0(input)) return action0(action_arg);
468   if (check1(input)) return action1(action_arg);
469   if (check2(input)) return action2(action_arg);
470   if (check3(input)) return action3(action_arg);
471   if (check4(input)) return action4(action_arg);
472   if (check5(input)) return action5(action_arg);
473   if (check6(input)) return action6(action_arg);
474   if (check7(input)) return action7(action_arg);
475   if (check8(input)) return action8(action_arg);
476   if (check9(input)) return action9(action_arg);
477   if (check10(input)) return action10(action_arg);
478   if (check11(input)) return action11(action_arg);
479   if (check12(input)) return action12(action_arg);
480   if (check13(input)) return action13(action_arg);
481   if (check14(input)) return action14(action_arg);
482   if (check15(input)) return action15(action_arg);
483   if (check16(input)) return action16(action_arg);
484   if (check17(input)) return action17(action_arg);
485   return action_fail(action_arg);
486 }
487 
488 template <
489     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
490     typename Check1, typename Check2, typename Check3, typename Check4,
491     typename Check5, typename Check6, typename Check7, typename Check8,
492     typename Check9, typename Check10, typename Check11, typename Check12,
493     typename Check13, typename Check14, typename Check15, typename Check16,
494     typename Check17, typename Check18, typename Action0, typename Action1,
495     typename Action2, typename Action3, typename Action4, typename Action5,
496     typename Action6, typename Action7, typename Action8, typename Action9,
497     typename Action10, typename Action11, typename Action12, typename Action13,
498     typename Action14, typename Action15, typename Action16, typename Action17,
499     typename Action18>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18)500 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
501             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
502             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
503             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
504             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
505             Check16 check16, Check17 check17, Check18 check18, Action0 action0,
506             Action1 action1, Action2 action2, Action3 action3, Action4 action4,
507             Action5 action5, Action6 action6, Action7 action7, Action8 action8,
508             Action9 action9, Action10 action10, Action11 action11,
509             Action12 action12, Action13 action13, Action14 action14,
510             Action15 action15, Action16 action16, Action17 action17,
511             Action18 action18) {
512   if (check0(input)) return action0(action_arg);
513   if (check1(input)) return action1(action_arg);
514   if (check2(input)) return action2(action_arg);
515   if (check3(input)) return action3(action_arg);
516   if (check4(input)) return action4(action_arg);
517   if (check5(input)) return action5(action_arg);
518   if (check6(input)) return action6(action_arg);
519   if (check7(input)) return action7(action_arg);
520   if (check8(input)) return action8(action_arg);
521   if (check9(input)) return action9(action_arg);
522   if (check10(input)) return action10(action_arg);
523   if (check11(input)) return action11(action_arg);
524   if (check12(input)) return action12(action_arg);
525   if (check13(input)) return action13(action_arg);
526   if (check14(input)) return action14(action_arg);
527   if (check15(input)) return action15(action_arg);
528   if (check16(input)) return action16(action_arg);
529   if (check17(input)) return action17(action_arg);
530   if (check18(input)) return action18(action_arg);
531   return action_fail(action_arg);
532 }
533 
534 template <
535     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
536     typename Check1, typename Check2, typename Check3, typename Check4,
537     typename Check5, typename Check6, typename Check7, typename Check8,
538     typename Check9, typename Check10, typename Check11, typename Check12,
539     typename Check13, typename Check14, typename Check15, typename Check16,
540     typename Check17, typename Check18, typename Check19, typename Action0,
541     typename Action1, typename Action2, typename Action3, typename Action4,
542     typename Action5, typename Action6, typename Action7, typename Action8,
543     typename Action9, typename Action10, typename Action11, typename Action12,
544     typename Action13, typename Action14, typename Action15, typename Action16,
545     typename Action17, typename Action18, typename Action19>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19)546 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
547             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
548             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
549             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
550             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
551             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
552             Action0 action0, Action1 action1, Action2 action2, Action3 action3,
553             Action4 action4, Action5 action5, Action6 action6, Action7 action7,
554             Action8 action8, Action9 action9, Action10 action10,
555             Action11 action11, Action12 action12, Action13 action13,
556             Action14 action14, Action15 action15, Action16 action16,
557             Action17 action17, Action18 action18, Action19 action19) {
558   if (check0(input)) return action0(action_arg);
559   if (check1(input)) return action1(action_arg);
560   if (check2(input)) return action2(action_arg);
561   if (check3(input)) return action3(action_arg);
562   if (check4(input)) return action4(action_arg);
563   if (check5(input)) return action5(action_arg);
564   if (check6(input)) return action6(action_arg);
565   if (check7(input)) return action7(action_arg);
566   if (check8(input)) return action8(action_arg);
567   if (check9(input)) return action9(action_arg);
568   if (check10(input)) return action10(action_arg);
569   if (check11(input)) return action11(action_arg);
570   if (check12(input)) return action12(action_arg);
571   if (check13(input)) return action13(action_arg);
572   if (check14(input)) return action14(action_arg);
573   if (check15(input)) return action15(action_arg);
574   if (check16(input)) return action16(action_arg);
575   if (check17(input)) return action17(action_arg);
576   if (check18(input)) return action18(action_arg);
577   if (check19(input)) return action19(action_arg);
578   return action_fail(action_arg);
579 }
580 
581 template <
582     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
583     typename Check1, typename Check2, typename Check3, typename Check4,
584     typename Check5, typename Check6, typename Check7, typename Check8,
585     typename Check9, typename Check10, typename Check11, typename Check12,
586     typename Check13, typename Check14, typename Check15, typename Check16,
587     typename Check17, typename Check18, typename Check19, typename Check20,
588     typename Action0, typename Action1, typename Action2, typename Action3,
589     typename Action4, typename Action5, typename Action6, typename Action7,
590     typename Action8, typename Action9, typename Action10, typename Action11,
591     typename Action12, typename Action13, typename Action14, typename Action15,
592     typename Action16, typename Action17, typename Action18, typename Action19,
593     typename Action20>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20)594 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
595             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
596             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
597             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
598             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
599             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
600             Check20 check20, Action0 action0, Action1 action1, Action2 action2,
601             Action3 action3, Action4 action4, Action5 action5, Action6 action6,
602             Action7 action7, Action8 action8, Action9 action9,
603             Action10 action10, Action11 action11, Action12 action12,
604             Action13 action13, Action14 action14, Action15 action15,
605             Action16 action16, Action17 action17, Action18 action18,
606             Action19 action19, Action20 action20) {
607   if (check0(input)) return action0(action_arg);
608   if (check1(input)) return action1(action_arg);
609   if (check2(input)) return action2(action_arg);
610   if (check3(input)) return action3(action_arg);
611   if (check4(input)) return action4(action_arg);
612   if (check5(input)) return action5(action_arg);
613   if (check6(input)) return action6(action_arg);
614   if (check7(input)) return action7(action_arg);
615   if (check8(input)) return action8(action_arg);
616   if (check9(input)) return action9(action_arg);
617   if (check10(input)) return action10(action_arg);
618   if (check11(input)) return action11(action_arg);
619   if (check12(input)) return action12(action_arg);
620   if (check13(input)) return action13(action_arg);
621   if (check14(input)) return action14(action_arg);
622   if (check15(input)) return action15(action_arg);
623   if (check16(input)) return action16(action_arg);
624   if (check17(input)) return action17(action_arg);
625   if (check18(input)) return action18(action_arg);
626   if (check19(input)) return action19(action_arg);
627   if (check20(input)) return action20(action_arg);
628   return action_fail(action_arg);
629 }
630 
631 template <
632     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
633     typename Check1, typename Check2, typename Check3, typename Check4,
634     typename Check5, typename Check6, typename Check7, typename Check8,
635     typename Check9, typename Check10, typename Check11, typename Check12,
636     typename Check13, typename Check14, typename Check15, typename Check16,
637     typename Check17, typename Check18, typename Check19, typename Check20,
638     typename Check21, typename Action0, typename Action1, typename Action2,
639     typename Action3, typename Action4, typename Action5, typename Action6,
640     typename Action7, typename Action8, typename Action9, typename Action10,
641     typename Action11, typename Action12, typename Action13, typename Action14,
642     typename Action15, typename Action16, typename Action17, typename Action18,
643     typename Action19, typename Action20, typename Action21>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21)644 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
645             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
646             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
647             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
648             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
649             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
650             Check20 check20, Check21 check21, Action0 action0, Action1 action1,
651             Action2 action2, Action3 action3, Action4 action4, Action5 action5,
652             Action6 action6, Action7 action7, Action8 action8, Action9 action9,
653             Action10 action10, Action11 action11, Action12 action12,
654             Action13 action13, Action14 action14, Action15 action15,
655             Action16 action16, Action17 action17, Action18 action18,
656             Action19 action19, Action20 action20, Action21 action21) {
657   if (check0(input)) return action0(action_arg);
658   if (check1(input)) return action1(action_arg);
659   if (check2(input)) return action2(action_arg);
660   if (check3(input)) return action3(action_arg);
661   if (check4(input)) return action4(action_arg);
662   if (check5(input)) return action5(action_arg);
663   if (check6(input)) return action6(action_arg);
664   if (check7(input)) return action7(action_arg);
665   if (check8(input)) return action8(action_arg);
666   if (check9(input)) return action9(action_arg);
667   if (check10(input)) return action10(action_arg);
668   if (check11(input)) return action11(action_arg);
669   if (check12(input)) return action12(action_arg);
670   if (check13(input)) return action13(action_arg);
671   if (check14(input)) return action14(action_arg);
672   if (check15(input)) return action15(action_arg);
673   if (check16(input)) return action16(action_arg);
674   if (check17(input)) return action17(action_arg);
675   if (check18(input)) return action18(action_arg);
676   if (check19(input)) return action19(action_arg);
677   if (check20(input)) return action20(action_arg);
678   if (check21(input)) return action21(action_arg);
679   return action_fail(action_arg);
680 }
681 
682 template <
683     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
684     typename Check1, typename Check2, typename Check3, typename Check4,
685     typename Check5, typename Check6, typename Check7, typename Check8,
686     typename Check9, typename Check10, typename Check11, typename Check12,
687     typename Check13, typename Check14, typename Check15, typename Check16,
688     typename Check17, typename Check18, typename Check19, typename Check20,
689     typename Check21, typename Check22, typename Action0, typename Action1,
690     typename Action2, typename Action3, typename Action4, typename Action5,
691     typename Action6, typename Action7, typename Action8, typename Action9,
692     typename Action10, typename Action11, typename Action12, typename Action13,
693     typename Action14, typename Action15, typename Action16, typename Action17,
694     typename Action18, typename Action19, typename Action20, typename Action21,
695     typename Action22>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22)696 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
697             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
698             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
699             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
700             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
701             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
702             Check20 check20, Check21 check21, Check22 check22, Action0 action0,
703             Action1 action1, Action2 action2, Action3 action3, Action4 action4,
704             Action5 action5, Action6 action6, Action7 action7, Action8 action8,
705             Action9 action9, Action10 action10, Action11 action11,
706             Action12 action12, Action13 action13, Action14 action14,
707             Action15 action15, Action16 action16, Action17 action17,
708             Action18 action18, Action19 action19, Action20 action20,
709             Action21 action21, Action22 action22) {
710   if (check0(input)) return action0(action_arg);
711   if (check1(input)) return action1(action_arg);
712   if (check2(input)) return action2(action_arg);
713   if (check3(input)) return action3(action_arg);
714   if (check4(input)) return action4(action_arg);
715   if (check5(input)) return action5(action_arg);
716   if (check6(input)) return action6(action_arg);
717   if (check7(input)) return action7(action_arg);
718   if (check8(input)) return action8(action_arg);
719   if (check9(input)) return action9(action_arg);
720   if (check10(input)) return action10(action_arg);
721   if (check11(input)) return action11(action_arg);
722   if (check12(input)) return action12(action_arg);
723   if (check13(input)) return action13(action_arg);
724   if (check14(input)) return action14(action_arg);
725   if (check15(input)) return action15(action_arg);
726   if (check16(input)) return action16(action_arg);
727   if (check17(input)) return action17(action_arg);
728   if (check18(input)) return action18(action_arg);
729   if (check19(input)) return action19(action_arg);
730   if (check20(input)) return action20(action_arg);
731   if (check21(input)) return action21(action_arg);
732   if (check22(input)) return action22(action_arg);
733   return action_fail(action_arg);
734 }
735 
736 template <
737     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
738     typename Check1, typename Check2, typename Check3, typename Check4,
739     typename Check5, typename Check6, typename Check7, typename Check8,
740     typename Check9, typename Check10, typename Check11, typename Check12,
741     typename Check13, typename Check14, typename Check15, typename Check16,
742     typename Check17, typename Check18, typename Check19, typename Check20,
743     typename Check21, typename Check22, typename Check23, typename Action0,
744     typename Action1, typename Action2, typename Action3, typename Action4,
745     typename Action5, typename Action6, typename Action7, typename Action8,
746     typename Action9, typename Action10, typename Action11, typename Action12,
747     typename Action13, typename Action14, typename Action15, typename Action16,
748     typename Action17, typename Action18, typename Action19, typename Action20,
749     typename Action21, typename Action22, typename Action23>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23)750 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
751             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
752             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
753             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
754             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
755             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
756             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
757             Action0 action0, Action1 action1, Action2 action2, Action3 action3,
758             Action4 action4, Action5 action5, Action6 action6, Action7 action7,
759             Action8 action8, Action9 action9, Action10 action10,
760             Action11 action11, Action12 action12, Action13 action13,
761             Action14 action14, Action15 action15, Action16 action16,
762             Action17 action17, Action18 action18, Action19 action19,
763             Action20 action20, Action21 action21, Action22 action22,
764             Action23 action23) {
765   if (check0(input)) return action0(action_arg);
766   if (check1(input)) return action1(action_arg);
767   if (check2(input)) return action2(action_arg);
768   if (check3(input)) return action3(action_arg);
769   if (check4(input)) return action4(action_arg);
770   if (check5(input)) return action5(action_arg);
771   if (check6(input)) return action6(action_arg);
772   if (check7(input)) return action7(action_arg);
773   if (check8(input)) return action8(action_arg);
774   if (check9(input)) return action9(action_arg);
775   if (check10(input)) return action10(action_arg);
776   if (check11(input)) return action11(action_arg);
777   if (check12(input)) return action12(action_arg);
778   if (check13(input)) return action13(action_arg);
779   if (check14(input)) return action14(action_arg);
780   if (check15(input)) return action15(action_arg);
781   if (check16(input)) return action16(action_arg);
782   if (check17(input)) return action17(action_arg);
783   if (check18(input)) return action18(action_arg);
784   if (check19(input)) return action19(action_arg);
785   if (check20(input)) return action20(action_arg);
786   if (check21(input)) return action21(action_arg);
787   if (check22(input)) return action22(action_arg);
788   if (check23(input)) return action23(action_arg);
789   return action_fail(action_arg);
790 }
791 
792 template <
793     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
794     typename Check1, typename Check2, typename Check3, typename Check4,
795     typename Check5, typename Check6, typename Check7, typename Check8,
796     typename Check9, typename Check10, typename Check11, typename Check12,
797     typename Check13, typename Check14, typename Check15, typename Check16,
798     typename Check17, typename Check18, typename Check19, typename Check20,
799     typename Check21, typename Check22, typename Check23, typename Check24,
800     typename Action0, typename Action1, typename Action2, typename Action3,
801     typename Action4, typename Action5, typename Action6, typename Action7,
802     typename Action8, typename Action9, typename Action10, typename Action11,
803     typename Action12, typename Action13, typename Action14, typename Action15,
804     typename Action16, typename Action17, typename Action18, typename Action19,
805     typename Action20, typename Action21, typename Action22, typename Action23,
806     typename Action24>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24)807 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
808             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
809             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
810             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
811             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
812             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
813             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
814             Check24 check24, Action0 action0, Action1 action1, Action2 action2,
815             Action3 action3, Action4 action4, Action5 action5, Action6 action6,
816             Action7 action7, Action8 action8, Action9 action9,
817             Action10 action10, Action11 action11, Action12 action12,
818             Action13 action13, Action14 action14, Action15 action15,
819             Action16 action16, Action17 action17, Action18 action18,
820             Action19 action19, Action20 action20, Action21 action21,
821             Action22 action22, Action23 action23, Action24 action24) {
822   if (check0(input)) return action0(action_arg);
823   if (check1(input)) return action1(action_arg);
824   if (check2(input)) return action2(action_arg);
825   if (check3(input)) return action3(action_arg);
826   if (check4(input)) return action4(action_arg);
827   if (check5(input)) return action5(action_arg);
828   if (check6(input)) return action6(action_arg);
829   if (check7(input)) return action7(action_arg);
830   if (check8(input)) return action8(action_arg);
831   if (check9(input)) return action9(action_arg);
832   if (check10(input)) return action10(action_arg);
833   if (check11(input)) return action11(action_arg);
834   if (check12(input)) return action12(action_arg);
835   if (check13(input)) return action13(action_arg);
836   if (check14(input)) return action14(action_arg);
837   if (check15(input)) return action15(action_arg);
838   if (check16(input)) return action16(action_arg);
839   if (check17(input)) return action17(action_arg);
840   if (check18(input)) return action18(action_arg);
841   if (check19(input)) return action19(action_arg);
842   if (check20(input)) return action20(action_arg);
843   if (check21(input)) return action21(action_arg);
844   if (check22(input)) return action22(action_arg);
845   if (check23(input)) return action23(action_arg);
846   if (check24(input)) return action24(action_arg);
847   return action_fail(action_arg);
848 }
849 
850 template <
851     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
852     typename Check1, typename Check2, typename Check3, typename Check4,
853     typename Check5, typename Check6, typename Check7, typename Check8,
854     typename Check9, typename Check10, typename Check11, typename Check12,
855     typename Check13, typename Check14, typename Check15, typename Check16,
856     typename Check17, typename Check18, typename Check19, typename Check20,
857     typename Check21, typename Check22, typename Check23, typename Check24,
858     typename Check25, typename Action0, typename Action1, typename Action2,
859     typename Action3, typename Action4, typename Action5, typename Action6,
860     typename Action7, typename Action8, typename Action9, typename Action10,
861     typename Action11, typename Action12, typename Action13, typename Action14,
862     typename Action15, typename Action16, typename Action17, typename Action18,
863     typename Action19, typename Action20, typename Action21, typename Action22,
864     typename Action23, typename Action24, typename Action25>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25)865 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
866             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
867             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
868             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
869             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
870             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
871             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
872             Check24 check24, Check25 check25, Action0 action0, Action1 action1,
873             Action2 action2, Action3 action3, Action4 action4, Action5 action5,
874             Action6 action6, Action7 action7, Action8 action8, Action9 action9,
875             Action10 action10, Action11 action11, Action12 action12,
876             Action13 action13, Action14 action14, Action15 action15,
877             Action16 action16, Action17 action17, Action18 action18,
878             Action19 action19, Action20 action20, Action21 action21,
879             Action22 action22, Action23 action23, Action24 action24,
880             Action25 action25) {
881   if (check0(input)) return action0(action_arg);
882   if (check1(input)) return action1(action_arg);
883   if (check2(input)) return action2(action_arg);
884   if (check3(input)) return action3(action_arg);
885   if (check4(input)) return action4(action_arg);
886   if (check5(input)) return action5(action_arg);
887   if (check6(input)) return action6(action_arg);
888   if (check7(input)) return action7(action_arg);
889   if (check8(input)) return action8(action_arg);
890   if (check9(input)) return action9(action_arg);
891   if (check10(input)) return action10(action_arg);
892   if (check11(input)) return action11(action_arg);
893   if (check12(input)) return action12(action_arg);
894   if (check13(input)) return action13(action_arg);
895   if (check14(input)) return action14(action_arg);
896   if (check15(input)) return action15(action_arg);
897   if (check16(input)) return action16(action_arg);
898   if (check17(input)) return action17(action_arg);
899   if (check18(input)) return action18(action_arg);
900   if (check19(input)) return action19(action_arg);
901   if (check20(input)) return action20(action_arg);
902   if (check21(input)) return action21(action_arg);
903   if (check22(input)) return action22(action_arg);
904   if (check23(input)) return action23(action_arg);
905   if (check24(input)) return action24(action_arg);
906   if (check25(input)) return action25(action_arg);
907   return action_fail(action_arg);
908 }
909 
910 template <
911     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
912     typename Check1, typename Check2, typename Check3, typename Check4,
913     typename Check5, typename Check6, typename Check7, typename Check8,
914     typename Check9, typename Check10, typename Check11, typename Check12,
915     typename Check13, typename Check14, typename Check15, typename Check16,
916     typename Check17, typename Check18, typename Check19, typename Check20,
917     typename Check21, typename Check22, typename Check23, typename Check24,
918     typename Check25, typename Check26, typename Action0, typename Action1,
919     typename Action2, typename Action3, typename Action4, typename Action5,
920     typename Action6, typename Action7, typename Action8, typename Action9,
921     typename Action10, typename Action11, typename Action12, typename Action13,
922     typename Action14, typename Action15, typename Action16, typename Action17,
923     typename Action18, typename Action19, typename Action20, typename Action21,
924     typename Action22, typename Action23, typename Action24, typename Action25,
925     typename Action26>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26)926 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
927             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
928             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
929             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
930             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
931             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
932             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
933             Check24 check24, Check25 check25, Check26 check26, Action0 action0,
934             Action1 action1, Action2 action2, Action3 action3, Action4 action4,
935             Action5 action5, Action6 action6, Action7 action7, Action8 action8,
936             Action9 action9, Action10 action10, Action11 action11,
937             Action12 action12, Action13 action13, Action14 action14,
938             Action15 action15, Action16 action16, Action17 action17,
939             Action18 action18, Action19 action19, Action20 action20,
940             Action21 action21, Action22 action22, Action23 action23,
941             Action24 action24, Action25 action25, Action26 action26) {
942   if (check0(input)) return action0(action_arg);
943   if (check1(input)) return action1(action_arg);
944   if (check2(input)) return action2(action_arg);
945   if (check3(input)) return action3(action_arg);
946   if (check4(input)) return action4(action_arg);
947   if (check5(input)) return action5(action_arg);
948   if (check6(input)) return action6(action_arg);
949   if (check7(input)) return action7(action_arg);
950   if (check8(input)) return action8(action_arg);
951   if (check9(input)) return action9(action_arg);
952   if (check10(input)) return action10(action_arg);
953   if (check11(input)) return action11(action_arg);
954   if (check12(input)) return action12(action_arg);
955   if (check13(input)) return action13(action_arg);
956   if (check14(input)) return action14(action_arg);
957   if (check15(input)) return action15(action_arg);
958   if (check16(input)) return action16(action_arg);
959   if (check17(input)) return action17(action_arg);
960   if (check18(input)) return action18(action_arg);
961   if (check19(input)) return action19(action_arg);
962   if (check20(input)) return action20(action_arg);
963   if (check21(input)) return action21(action_arg);
964   if (check22(input)) return action22(action_arg);
965   if (check23(input)) return action23(action_arg);
966   if (check24(input)) return action24(action_arg);
967   if (check25(input)) return action25(action_arg);
968   if (check26(input)) return action26(action_arg);
969   return action_fail(action_arg);
970 }
971 
972 template <
973     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
974     typename Check1, typename Check2, typename Check3, typename Check4,
975     typename Check5, typename Check6, typename Check7, typename Check8,
976     typename Check9, typename Check10, typename Check11, typename Check12,
977     typename Check13, typename Check14, typename Check15, typename Check16,
978     typename Check17, typename Check18, typename Check19, typename Check20,
979     typename Check21, typename Check22, typename Check23, typename Check24,
980     typename Check25, typename Check26, typename Check27, typename Action0,
981     typename Action1, typename Action2, typename Action3, typename Action4,
982     typename Action5, typename Action6, typename Action7, typename Action8,
983     typename Action9, typename Action10, typename Action11, typename Action12,
984     typename Action13, typename Action14, typename Action15, typename Action16,
985     typename Action17, typename Action18, typename Action19, typename Action20,
986     typename Action21, typename Action22, typename Action23, typename Action24,
987     typename Action25, typename Action26, typename Action27>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27)988 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
989             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
990             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
991             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
992             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
993             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
994             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
995             Check24 check24, Check25 check25, Check26 check26, Check27 check27,
996             Action0 action0, Action1 action1, Action2 action2, Action3 action3,
997             Action4 action4, Action5 action5, Action6 action6, Action7 action7,
998             Action8 action8, Action9 action9, Action10 action10,
999             Action11 action11, Action12 action12, Action13 action13,
1000             Action14 action14, Action15 action15, Action16 action16,
1001             Action17 action17, Action18 action18, Action19 action19,
1002             Action20 action20, Action21 action21, Action22 action22,
1003             Action23 action23, Action24 action24, Action25 action25,
1004             Action26 action26, Action27 action27) {
1005   if (check0(input)) return action0(action_arg);
1006   if (check1(input)) return action1(action_arg);
1007   if (check2(input)) return action2(action_arg);
1008   if (check3(input)) return action3(action_arg);
1009   if (check4(input)) return action4(action_arg);
1010   if (check5(input)) return action5(action_arg);
1011   if (check6(input)) return action6(action_arg);
1012   if (check7(input)) return action7(action_arg);
1013   if (check8(input)) return action8(action_arg);
1014   if (check9(input)) return action9(action_arg);
1015   if (check10(input)) return action10(action_arg);
1016   if (check11(input)) return action11(action_arg);
1017   if (check12(input)) return action12(action_arg);
1018   if (check13(input)) return action13(action_arg);
1019   if (check14(input)) return action14(action_arg);
1020   if (check15(input)) return action15(action_arg);
1021   if (check16(input)) return action16(action_arg);
1022   if (check17(input)) return action17(action_arg);
1023   if (check18(input)) return action18(action_arg);
1024   if (check19(input)) return action19(action_arg);
1025   if (check20(input)) return action20(action_arg);
1026   if (check21(input)) return action21(action_arg);
1027   if (check22(input)) return action22(action_arg);
1028   if (check23(input)) return action23(action_arg);
1029   if (check24(input)) return action24(action_arg);
1030   if (check25(input)) return action25(action_arg);
1031   if (check26(input)) return action26(action_arg);
1032   if (check27(input)) return action27(action_arg);
1033   return action_fail(action_arg);
1034 }
1035 
1036 template <
1037     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1038     typename Check1, typename Check2, typename Check3, typename Check4,
1039     typename Check5, typename Check6, typename Check7, typename Check8,
1040     typename Check9, typename Check10, typename Check11, typename Check12,
1041     typename Check13, typename Check14, typename Check15, typename Check16,
1042     typename Check17, typename Check18, typename Check19, typename Check20,
1043     typename Check21, typename Check22, typename Check23, typename Check24,
1044     typename Check25, typename Check26, typename Check27, typename Check28,
1045     typename Action0, typename Action1, typename Action2, typename Action3,
1046     typename Action4, typename Action5, typename Action6, typename Action7,
1047     typename Action8, typename Action9, typename Action10, typename Action11,
1048     typename Action12, typename Action13, typename Action14, typename Action15,
1049     typename Action16, typename Action17, typename Action18, typename Action19,
1050     typename Action20, typename Action21, typename Action22, typename Action23,
1051     typename Action24, typename Action25, typename Action26, typename Action27,
1052     typename Action28>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28)1053 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1054             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1055             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1056             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1057             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1058             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1059             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1060             Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1061             Check28 check28, Action0 action0, Action1 action1, Action2 action2,
1062             Action3 action3, Action4 action4, Action5 action5, Action6 action6,
1063             Action7 action7, Action8 action8, Action9 action9,
1064             Action10 action10, Action11 action11, Action12 action12,
1065             Action13 action13, Action14 action14, Action15 action15,
1066             Action16 action16, Action17 action17, Action18 action18,
1067             Action19 action19, Action20 action20, Action21 action21,
1068             Action22 action22, Action23 action23, Action24 action24,
1069             Action25 action25, Action26 action26, Action27 action27,
1070             Action28 action28) {
1071   if (check0(input)) return action0(action_arg);
1072   if (check1(input)) return action1(action_arg);
1073   if (check2(input)) return action2(action_arg);
1074   if (check3(input)) return action3(action_arg);
1075   if (check4(input)) return action4(action_arg);
1076   if (check5(input)) return action5(action_arg);
1077   if (check6(input)) return action6(action_arg);
1078   if (check7(input)) return action7(action_arg);
1079   if (check8(input)) return action8(action_arg);
1080   if (check9(input)) return action9(action_arg);
1081   if (check10(input)) return action10(action_arg);
1082   if (check11(input)) return action11(action_arg);
1083   if (check12(input)) return action12(action_arg);
1084   if (check13(input)) return action13(action_arg);
1085   if (check14(input)) return action14(action_arg);
1086   if (check15(input)) return action15(action_arg);
1087   if (check16(input)) return action16(action_arg);
1088   if (check17(input)) return action17(action_arg);
1089   if (check18(input)) return action18(action_arg);
1090   if (check19(input)) return action19(action_arg);
1091   if (check20(input)) return action20(action_arg);
1092   if (check21(input)) return action21(action_arg);
1093   if (check22(input)) return action22(action_arg);
1094   if (check23(input)) return action23(action_arg);
1095   if (check24(input)) return action24(action_arg);
1096   if (check25(input)) return action25(action_arg);
1097   if (check26(input)) return action26(action_arg);
1098   if (check27(input)) return action27(action_arg);
1099   if (check28(input)) return action28(action_arg);
1100   return action_fail(action_arg);
1101 }
1102 
1103 template <
1104     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1105     typename Check1, typename Check2, typename Check3, typename Check4,
1106     typename Check5, typename Check6, typename Check7, typename Check8,
1107     typename Check9, typename Check10, typename Check11, typename Check12,
1108     typename Check13, typename Check14, typename Check15, typename Check16,
1109     typename Check17, typename Check18, typename Check19, typename Check20,
1110     typename Check21, typename Check22, typename Check23, typename Check24,
1111     typename Check25, typename Check26, typename Check27, typename Check28,
1112     typename Check29, typename Action0, typename Action1, typename Action2,
1113     typename Action3, typename Action4, typename Action5, typename Action6,
1114     typename Action7, typename Action8, typename Action9, typename Action10,
1115     typename Action11, typename Action12, typename Action13, typename Action14,
1116     typename Action15, typename Action16, typename Action17, typename Action18,
1117     typename Action19, typename Action20, typename Action21, typename Action22,
1118     typename Action23, typename Action24, typename Action25, typename Action26,
1119     typename Action27, typename Action28, typename Action29>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29)1120 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1121             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1122             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1123             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1124             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1125             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1126             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1127             Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1128             Check28 check28, Check29 check29, Action0 action0, Action1 action1,
1129             Action2 action2, Action3 action3, Action4 action4, Action5 action5,
1130             Action6 action6, Action7 action7, Action8 action8, Action9 action9,
1131             Action10 action10, Action11 action11, Action12 action12,
1132             Action13 action13, Action14 action14, Action15 action15,
1133             Action16 action16, Action17 action17, Action18 action18,
1134             Action19 action19, Action20 action20, Action21 action21,
1135             Action22 action22, Action23 action23, Action24 action24,
1136             Action25 action25, Action26 action26, Action27 action27,
1137             Action28 action28, Action29 action29) {
1138   if (check0(input)) return action0(action_arg);
1139   if (check1(input)) return action1(action_arg);
1140   if (check2(input)) return action2(action_arg);
1141   if (check3(input)) return action3(action_arg);
1142   if (check4(input)) return action4(action_arg);
1143   if (check5(input)) return action5(action_arg);
1144   if (check6(input)) return action6(action_arg);
1145   if (check7(input)) return action7(action_arg);
1146   if (check8(input)) return action8(action_arg);
1147   if (check9(input)) return action9(action_arg);
1148   if (check10(input)) return action10(action_arg);
1149   if (check11(input)) return action11(action_arg);
1150   if (check12(input)) return action12(action_arg);
1151   if (check13(input)) return action13(action_arg);
1152   if (check14(input)) return action14(action_arg);
1153   if (check15(input)) return action15(action_arg);
1154   if (check16(input)) return action16(action_arg);
1155   if (check17(input)) return action17(action_arg);
1156   if (check18(input)) return action18(action_arg);
1157   if (check19(input)) return action19(action_arg);
1158   if (check20(input)) return action20(action_arg);
1159   if (check21(input)) return action21(action_arg);
1160   if (check22(input)) return action22(action_arg);
1161   if (check23(input)) return action23(action_arg);
1162   if (check24(input)) return action24(action_arg);
1163   if (check25(input)) return action25(action_arg);
1164   if (check26(input)) return action26(action_arg);
1165   if (check27(input)) return action27(action_arg);
1166   if (check28(input)) return action28(action_arg);
1167   if (check29(input)) return action29(action_arg);
1168   return action_fail(action_arg);
1169 }
1170 
1171 template <
1172     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1173     typename Check1, typename Check2, typename Check3, typename Check4,
1174     typename Check5, typename Check6, typename Check7, typename Check8,
1175     typename Check9, typename Check10, typename Check11, typename Check12,
1176     typename Check13, typename Check14, typename Check15, typename Check16,
1177     typename Check17, typename Check18, typename Check19, typename Check20,
1178     typename Check21, typename Check22, typename Check23, typename Check24,
1179     typename Check25, typename Check26, typename Check27, typename Check28,
1180     typename Check29, typename Check30, typename Action0, typename Action1,
1181     typename Action2, typename Action3, typename Action4, typename Action5,
1182     typename Action6, typename Action7, typename Action8, typename Action9,
1183     typename Action10, typename Action11, typename Action12, typename Action13,
1184     typename Action14, typename Action15, typename Action16, typename Action17,
1185     typename Action18, typename Action19, typename Action20, typename Action21,
1186     typename Action22, typename Action23, typename Action24, typename Action25,
1187     typename Action26, typename Action27, typename Action28, typename Action29,
1188     typename Action30>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30)1189 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1190             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1191             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1192             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1193             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1194             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1195             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1196             Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1197             Check28 check28, Check29 check29, Check30 check30, Action0 action0,
1198             Action1 action1, Action2 action2, Action3 action3, Action4 action4,
1199             Action5 action5, Action6 action6, Action7 action7, Action8 action8,
1200             Action9 action9, Action10 action10, Action11 action11,
1201             Action12 action12, Action13 action13, Action14 action14,
1202             Action15 action15, Action16 action16, Action17 action17,
1203             Action18 action18, Action19 action19, Action20 action20,
1204             Action21 action21, Action22 action22, Action23 action23,
1205             Action24 action24, Action25 action25, Action26 action26,
1206             Action27 action27, Action28 action28, Action29 action29,
1207             Action30 action30) {
1208   if (check0(input)) return action0(action_arg);
1209   if (check1(input)) return action1(action_arg);
1210   if (check2(input)) return action2(action_arg);
1211   if (check3(input)) return action3(action_arg);
1212   if (check4(input)) return action4(action_arg);
1213   if (check5(input)) return action5(action_arg);
1214   if (check6(input)) return action6(action_arg);
1215   if (check7(input)) return action7(action_arg);
1216   if (check8(input)) return action8(action_arg);
1217   if (check9(input)) return action9(action_arg);
1218   if (check10(input)) return action10(action_arg);
1219   if (check11(input)) return action11(action_arg);
1220   if (check12(input)) return action12(action_arg);
1221   if (check13(input)) return action13(action_arg);
1222   if (check14(input)) return action14(action_arg);
1223   if (check15(input)) return action15(action_arg);
1224   if (check16(input)) return action16(action_arg);
1225   if (check17(input)) return action17(action_arg);
1226   if (check18(input)) return action18(action_arg);
1227   if (check19(input)) return action19(action_arg);
1228   if (check20(input)) return action20(action_arg);
1229   if (check21(input)) return action21(action_arg);
1230   if (check22(input)) return action22(action_arg);
1231   if (check23(input)) return action23(action_arg);
1232   if (check24(input)) return action24(action_arg);
1233   if (check25(input)) return action25(action_arg);
1234   if (check26(input)) return action26(action_arg);
1235   if (check27(input)) return action27(action_arg);
1236   if (check28(input)) return action28(action_arg);
1237   if (check29(input)) return action29(action_arg);
1238   if (check30(input)) return action30(action_arg);
1239   return action_fail(action_arg);
1240 }
1241 
1242 template <
1243     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1244     typename Check1, typename Check2, typename Check3, typename Check4,
1245     typename Check5, typename Check6, typename Check7, typename Check8,
1246     typename Check9, typename Check10, typename Check11, typename Check12,
1247     typename Check13, typename Check14, typename Check15, typename Check16,
1248     typename Check17, typename Check18, typename Check19, typename Check20,
1249     typename Check21, typename Check22, typename Check23, typename Check24,
1250     typename Check25, typename Check26, typename Check27, typename Check28,
1251     typename Check29, typename Check30, typename Check31, typename Action0,
1252     typename Action1, typename Action2, typename Action3, typename Action4,
1253     typename Action5, typename Action6, typename Action7, typename Action8,
1254     typename Action9, typename Action10, typename Action11, typename Action12,
1255     typename Action13, typename Action14, typename Action15, typename Action16,
1256     typename Action17, typename Action18, typename Action19, typename Action20,
1257     typename Action21, typename Action22, typename Action23, typename Action24,
1258     typename Action25, typename Action26, typename Action27, typename Action28,
1259     typename Action29, typename Action30, typename Action31>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31)1260 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1261             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1262             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1263             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1264             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1265             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1266             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1267             Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1268             Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1269             Action0 action0, Action1 action1, Action2 action2, Action3 action3,
1270             Action4 action4, Action5 action5, Action6 action6, Action7 action7,
1271             Action8 action8, Action9 action9, Action10 action10,
1272             Action11 action11, Action12 action12, Action13 action13,
1273             Action14 action14, Action15 action15, Action16 action16,
1274             Action17 action17, Action18 action18, Action19 action19,
1275             Action20 action20, Action21 action21, Action22 action22,
1276             Action23 action23, Action24 action24, Action25 action25,
1277             Action26 action26, Action27 action27, Action28 action28,
1278             Action29 action29, Action30 action30, Action31 action31) {
1279   if (check0(input)) return action0(action_arg);
1280   if (check1(input)) return action1(action_arg);
1281   if (check2(input)) return action2(action_arg);
1282   if (check3(input)) return action3(action_arg);
1283   if (check4(input)) return action4(action_arg);
1284   if (check5(input)) return action5(action_arg);
1285   if (check6(input)) return action6(action_arg);
1286   if (check7(input)) return action7(action_arg);
1287   if (check8(input)) return action8(action_arg);
1288   if (check9(input)) return action9(action_arg);
1289   if (check10(input)) return action10(action_arg);
1290   if (check11(input)) return action11(action_arg);
1291   if (check12(input)) return action12(action_arg);
1292   if (check13(input)) return action13(action_arg);
1293   if (check14(input)) return action14(action_arg);
1294   if (check15(input)) return action15(action_arg);
1295   if (check16(input)) return action16(action_arg);
1296   if (check17(input)) return action17(action_arg);
1297   if (check18(input)) return action18(action_arg);
1298   if (check19(input)) return action19(action_arg);
1299   if (check20(input)) return action20(action_arg);
1300   if (check21(input)) return action21(action_arg);
1301   if (check22(input)) return action22(action_arg);
1302   if (check23(input)) return action23(action_arg);
1303   if (check24(input)) return action24(action_arg);
1304   if (check25(input)) return action25(action_arg);
1305   if (check26(input)) return action26(action_arg);
1306   if (check27(input)) return action27(action_arg);
1307   if (check28(input)) return action28(action_arg);
1308   if (check29(input)) return action29(action_arg);
1309   if (check30(input)) return action30(action_arg);
1310   if (check31(input)) return action31(action_arg);
1311   return action_fail(action_arg);
1312 }
1313 
1314 template <
1315     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1316     typename Check1, typename Check2, typename Check3, typename Check4,
1317     typename Check5, typename Check6, typename Check7, typename Check8,
1318     typename Check9, typename Check10, typename Check11, typename Check12,
1319     typename Check13, typename Check14, typename Check15, typename Check16,
1320     typename Check17, typename Check18, typename Check19, typename Check20,
1321     typename Check21, typename Check22, typename Check23, typename Check24,
1322     typename Check25, typename Check26, typename Check27, typename Check28,
1323     typename Check29, typename Check30, typename Check31, typename Check32,
1324     typename Action0, typename Action1, typename Action2, typename Action3,
1325     typename Action4, typename Action5, typename Action6, typename Action7,
1326     typename Action8, typename Action9, typename Action10, typename Action11,
1327     typename Action12, typename Action13, typename Action14, typename Action15,
1328     typename Action16, typename Action17, typename Action18, typename Action19,
1329     typename Action20, typename Action21, typename Action22, typename Action23,
1330     typename Action24, typename Action25, typename Action26, typename Action27,
1331     typename Action28, typename Action29, typename Action30, typename Action31,
1332     typename Action32>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32)1333 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1334             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1335             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1336             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1337             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1338             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1339             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1340             Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1341             Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1342             Check32 check32, Action0 action0, Action1 action1, Action2 action2,
1343             Action3 action3, Action4 action4, Action5 action5, Action6 action6,
1344             Action7 action7, Action8 action8, Action9 action9,
1345             Action10 action10, Action11 action11, Action12 action12,
1346             Action13 action13, Action14 action14, Action15 action15,
1347             Action16 action16, Action17 action17, Action18 action18,
1348             Action19 action19, Action20 action20, Action21 action21,
1349             Action22 action22, Action23 action23, Action24 action24,
1350             Action25 action25, Action26 action26, Action27 action27,
1351             Action28 action28, Action29 action29, Action30 action30,
1352             Action31 action31, Action32 action32) {
1353   if (check0(input)) return action0(action_arg);
1354   if (check1(input)) return action1(action_arg);
1355   if (check2(input)) return action2(action_arg);
1356   if (check3(input)) return action3(action_arg);
1357   if (check4(input)) return action4(action_arg);
1358   if (check5(input)) return action5(action_arg);
1359   if (check6(input)) return action6(action_arg);
1360   if (check7(input)) return action7(action_arg);
1361   if (check8(input)) return action8(action_arg);
1362   if (check9(input)) return action9(action_arg);
1363   if (check10(input)) return action10(action_arg);
1364   if (check11(input)) return action11(action_arg);
1365   if (check12(input)) return action12(action_arg);
1366   if (check13(input)) return action13(action_arg);
1367   if (check14(input)) return action14(action_arg);
1368   if (check15(input)) return action15(action_arg);
1369   if (check16(input)) return action16(action_arg);
1370   if (check17(input)) return action17(action_arg);
1371   if (check18(input)) return action18(action_arg);
1372   if (check19(input)) return action19(action_arg);
1373   if (check20(input)) return action20(action_arg);
1374   if (check21(input)) return action21(action_arg);
1375   if (check22(input)) return action22(action_arg);
1376   if (check23(input)) return action23(action_arg);
1377   if (check24(input)) return action24(action_arg);
1378   if (check25(input)) return action25(action_arg);
1379   if (check26(input)) return action26(action_arg);
1380   if (check27(input)) return action27(action_arg);
1381   if (check28(input)) return action28(action_arg);
1382   if (check29(input)) return action29(action_arg);
1383   if (check30(input)) return action30(action_arg);
1384   if (check31(input)) return action31(action_arg);
1385   if (check32(input)) return action32(action_arg);
1386   return action_fail(action_arg);
1387 }
1388 
1389 template <
1390     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1391     typename Check1, typename Check2, typename Check3, typename Check4,
1392     typename Check5, typename Check6, typename Check7, typename Check8,
1393     typename Check9, typename Check10, typename Check11, typename Check12,
1394     typename Check13, typename Check14, typename Check15, typename Check16,
1395     typename Check17, typename Check18, typename Check19, typename Check20,
1396     typename Check21, typename Check22, typename Check23, typename Check24,
1397     typename Check25, typename Check26, typename Check27, typename Check28,
1398     typename Check29, typename Check30, typename Check31, typename Check32,
1399     typename Check33, typename Action0, typename Action1, typename Action2,
1400     typename Action3, typename Action4, typename Action5, typename Action6,
1401     typename Action7, typename Action8, typename Action9, typename Action10,
1402     typename Action11, typename Action12, typename Action13, typename Action14,
1403     typename Action15, typename Action16, typename Action17, typename Action18,
1404     typename Action19, typename Action20, typename Action21, typename Action22,
1405     typename Action23, typename Action24, typename Action25, typename Action26,
1406     typename Action27, typename Action28, typename Action29, typename Action30,
1407     typename Action31, typename Action32, typename Action33>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33)1408 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1409             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1410             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1411             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1412             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1413             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1414             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1415             Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1416             Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1417             Check32 check32, Check33 check33, Action0 action0, Action1 action1,
1418             Action2 action2, Action3 action3, Action4 action4, Action5 action5,
1419             Action6 action6, Action7 action7, Action8 action8, Action9 action9,
1420             Action10 action10, Action11 action11, Action12 action12,
1421             Action13 action13, Action14 action14, Action15 action15,
1422             Action16 action16, Action17 action17, Action18 action18,
1423             Action19 action19, Action20 action20, Action21 action21,
1424             Action22 action22, Action23 action23, Action24 action24,
1425             Action25 action25, Action26 action26, Action27 action27,
1426             Action28 action28, Action29 action29, Action30 action30,
1427             Action31 action31, Action32 action32, Action33 action33) {
1428   if (check0(input)) return action0(action_arg);
1429   if (check1(input)) return action1(action_arg);
1430   if (check2(input)) return action2(action_arg);
1431   if (check3(input)) return action3(action_arg);
1432   if (check4(input)) return action4(action_arg);
1433   if (check5(input)) return action5(action_arg);
1434   if (check6(input)) return action6(action_arg);
1435   if (check7(input)) return action7(action_arg);
1436   if (check8(input)) return action8(action_arg);
1437   if (check9(input)) return action9(action_arg);
1438   if (check10(input)) return action10(action_arg);
1439   if (check11(input)) return action11(action_arg);
1440   if (check12(input)) return action12(action_arg);
1441   if (check13(input)) return action13(action_arg);
1442   if (check14(input)) return action14(action_arg);
1443   if (check15(input)) return action15(action_arg);
1444   if (check16(input)) return action16(action_arg);
1445   if (check17(input)) return action17(action_arg);
1446   if (check18(input)) return action18(action_arg);
1447   if (check19(input)) return action19(action_arg);
1448   if (check20(input)) return action20(action_arg);
1449   if (check21(input)) return action21(action_arg);
1450   if (check22(input)) return action22(action_arg);
1451   if (check23(input)) return action23(action_arg);
1452   if (check24(input)) return action24(action_arg);
1453   if (check25(input)) return action25(action_arg);
1454   if (check26(input)) return action26(action_arg);
1455   if (check27(input)) return action27(action_arg);
1456   if (check28(input)) return action28(action_arg);
1457   if (check29(input)) return action29(action_arg);
1458   if (check30(input)) return action30(action_arg);
1459   if (check31(input)) return action31(action_arg);
1460   if (check32(input)) return action32(action_arg);
1461   if (check33(input)) return action33(action_arg);
1462   return action_fail(action_arg);
1463 }
1464 
1465 template <
1466     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1467     typename Check1, typename Check2, typename Check3, typename Check4,
1468     typename Check5, typename Check6, typename Check7, typename Check8,
1469     typename Check9, typename Check10, typename Check11, typename Check12,
1470     typename Check13, typename Check14, typename Check15, typename Check16,
1471     typename Check17, typename Check18, typename Check19, typename Check20,
1472     typename Check21, typename Check22, typename Check23, typename Check24,
1473     typename Check25, typename Check26, typename Check27, typename Check28,
1474     typename Check29, typename Check30, typename Check31, typename Check32,
1475     typename Check33, typename Check34, typename Action0, typename Action1,
1476     typename Action2, typename Action3, typename Action4, typename Action5,
1477     typename Action6, typename Action7, typename Action8, typename Action9,
1478     typename Action10, typename Action11, typename Action12, typename Action13,
1479     typename Action14, typename Action15, typename Action16, typename Action17,
1480     typename Action18, typename Action19, typename Action20, typename Action21,
1481     typename Action22, typename Action23, typename Action24, typename Action25,
1482     typename Action26, typename Action27, typename Action28, typename Action29,
1483     typename Action30, typename Action31, typename Action32, typename Action33,
1484     typename Action34>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34)1485 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1486             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1487             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1488             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1489             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1490             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1491             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1492             Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1493             Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1494             Check32 check32, Check33 check33, Check34 check34, Action0 action0,
1495             Action1 action1, Action2 action2, Action3 action3, Action4 action4,
1496             Action5 action5, Action6 action6, Action7 action7, Action8 action8,
1497             Action9 action9, Action10 action10, Action11 action11,
1498             Action12 action12, Action13 action13, Action14 action14,
1499             Action15 action15, Action16 action16, Action17 action17,
1500             Action18 action18, Action19 action19, Action20 action20,
1501             Action21 action21, Action22 action22, Action23 action23,
1502             Action24 action24, Action25 action25, Action26 action26,
1503             Action27 action27, Action28 action28, Action29 action29,
1504             Action30 action30, Action31 action31, Action32 action32,
1505             Action33 action33, Action34 action34) {
1506   if (check0(input)) return action0(action_arg);
1507   if (check1(input)) return action1(action_arg);
1508   if (check2(input)) return action2(action_arg);
1509   if (check3(input)) return action3(action_arg);
1510   if (check4(input)) return action4(action_arg);
1511   if (check5(input)) return action5(action_arg);
1512   if (check6(input)) return action6(action_arg);
1513   if (check7(input)) return action7(action_arg);
1514   if (check8(input)) return action8(action_arg);
1515   if (check9(input)) return action9(action_arg);
1516   if (check10(input)) return action10(action_arg);
1517   if (check11(input)) return action11(action_arg);
1518   if (check12(input)) return action12(action_arg);
1519   if (check13(input)) return action13(action_arg);
1520   if (check14(input)) return action14(action_arg);
1521   if (check15(input)) return action15(action_arg);
1522   if (check16(input)) return action16(action_arg);
1523   if (check17(input)) return action17(action_arg);
1524   if (check18(input)) return action18(action_arg);
1525   if (check19(input)) return action19(action_arg);
1526   if (check20(input)) return action20(action_arg);
1527   if (check21(input)) return action21(action_arg);
1528   if (check22(input)) return action22(action_arg);
1529   if (check23(input)) return action23(action_arg);
1530   if (check24(input)) return action24(action_arg);
1531   if (check25(input)) return action25(action_arg);
1532   if (check26(input)) return action26(action_arg);
1533   if (check27(input)) return action27(action_arg);
1534   if (check28(input)) return action28(action_arg);
1535   if (check29(input)) return action29(action_arg);
1536   if (check30(input)) return action30(action_arg);
1537   if (check31(input)) return action31(action_arg);
1538   if (check32(input)) return action32(action_arg);
1539   if (check33(input)) return action33(action_arg);
1540   if (check34(input)) return action34(action_arg);
1541   return action_fail(action_arg);
1542 }
1543 
1544 template <
1545     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1546     typename Check1, typename Check2, typename Check3, typename Check4,
1547     typename Check5, typename Check6, typename Check7, typename Check8,
1548     typename Check9, typename Check10, typename Check11, typename Check12,
1549     typename Check13, typename Check14, typename Check15, typename Check16,
1550     typename Check17, typename Check18, typename Check19, typename Check20,
1551     typename Check21, typename Check22, typename Check23, typename Check24,
1552     typename Check25, typename Check26, typename Check27, typename Check28,
1553     typename Check29, typename Check30, typename Check31, typename Check32,
1554     typename Check33, typename Check34, typename Check35, typename Action0,
1555     typename Action1, typename Action2, typename Action3, typename Action4,
1556     typename Action5, typename Action6, typename Action7, typename Action8,
1557     typename Action9, typename Action10, typename Action11, typename Action12,
1558     typename Action13, typename Action14, typename Action15, typename Action16,
1559     typename Action17, typename Action18, typename Action19, typename Action20,
1560     typename Action21, typename Action22, typename Action23, typename Action24,
1561     typename Action25, typename Action26, typename Action27, typename Action28,
1562     typename Action29, typename Action30, typename Action31, typename Action32,
1563     typename Action33, typename Action34, typename Action35>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35)1564 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1565             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1566             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1567             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1568             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1569             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1570             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1571             Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1572             Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1573             Check32 check32, Check33 check33, Check34 check34, Check35 check35,
1574             Action0 action0, Action1 action1, Action2 action2, Action3 action3,
1575             Action4 action4, Action5 action5, Action6 action6, Action7 action7,
1576             Action8 action8, Action9 action9, Action10 action10,
1577             Action11 action11, Action12 action12, Action13 action13,
1578             Action14 action14, Action15 action15, Action16 action16,
1579             Action17 action17, Action18 action18, Action19 action19,
1580             Action20 action20, Action21 action21, Action22 action22,
1581             Action23 action23, Action24 action24, Action25 action25,
1582             Action26 action26, Action27 action27, Action28 action28,
1583             Action29 action29, Action30 action30, Action31 action31,
1584             Action32 action32, Action33 action33, Action34 action34,
1585             Action35 action35) {
1586   if (check0(input)) return action0(action_arg);
1587   if (check1(input)) return action1(action_arg);
1588   if (check2(input)) return action2(action_arg);
1589   if (check3(input)) return action3(action_arg);
1590   if (check4(input)) return action4(action_arg);
1591   if (check5(input)) return action5(action_arg);
1592   if (check6(input)) return action6(action_arg);
1593   if (check7(input)) return action7(action_arg);
1594   if (check8(input)) return action8(action_arg);
1595   if (check9(input)) return action9(action_arg);
1596   if (check10(input)) return action10(action_arg);
1597   if (check11(input)) return action11(action_arg);
1598   if (check12(input)) return action12(action_arg);
1599   if (check13(input)) return action13(action_arg);
1600   if (check14(input)) return action14(action_arg);
1601   if (check15(input)) return action15(action_arg);
1602   if (check16(input)) return action16(action_arg);
1603   if (check17(input)) return action17(action_arg);
1604   if (check18(input)) return action18(action_arg);
1605   if (check19(input)) return action19(action_arg);
1606   if (check20(input)) return action20(action_arg);
1607   if (check21(input)) return action21(action_arg);
1608   if (check22(input)) return action22(action_arg);
1609   if (check23(input)) return action23(action_arg);
1610   if (check24(input)) return action24(action_arg);
1611   if (check25(input)) return action25(action_arg);
1612   if (check26(input)) return action26(action_arg);
1613   if (check27(input)) return action27(action_arg);
1614   if (check28(input)) return action28(action_arg);
1615   if (check29(input)) return action29(action_arg);
1616   if (check30(input)) return action30(action_arg);
1617   if (check31(input)) return action31(action_arg);
1618   if (check32(input)) return action32(action_arg);
1619   if (check33(input)) return action33(action_arg);
1620   if (check34(input)) return action34(action_arg);
1621   if (check35(input)) return action35(action_arg);
1622   return action_fail(action_arg);
1623 }
1624 
1625 template <
1626     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1627     typename Check1, typename Check2, typename Check3, typename Check4,
1628     typename Check5, typename Check6, typename Check7, typename Check8,
1629     typename Check9, typename Check10, typename Check11, typename Check12,
1630     typename Check13, typename Check14, typename Check15, typename Check16,
1631     typename Check17, typename Check18, typename Check19, typename Check20,
1632     typename Check21, typename Check22, typename Check23, typename Check24,
1633     typename Check25, typename Check26, typename Check27, typename Check28,
1634     typename Check29, typename Check30, typename Check31, typename Check32,
1635     typename Check33, typename Check34, typename Check35, typename Check36,
1636     typename Action0, typename Action1, typename Action2, typename Action3,
1637     typename Action4, typename Action5, typename Action6, typename Action7,
1638     typename Action8, typename Action9, typename Action10, typename Action11,
1639     typename Action12, typename Action13, typename Action14, typename Action15,
1640     typename Action16, typename Action17, typename Action18, typename Action19,
1641     typename Action20, typename Action21, typename Action22, typename Action23,
1642     typename Action24, typename Action25, typename Action26, typename Action27,
1643     typename Action28, typename Action29, typename Action30, typename Action31,
1644     typename Action32, typename Action33, typename Action34, typename Action35,
1645     typename Action36>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36)1646 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1647             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1648             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1649             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1650             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1651             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1652             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1653             Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1654             Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1655             Check32 check32, Check33 check33, Check34 check34, Check35 check35,
1656             Check36 check36, Action0 action0, Action1 action1, Action2 action2,
1657             Action3 action3, Action4 action4, Action5 action5, Action6 action6,
1658             Action7 action7, Action8 action8, Action9 action9,
1659             Action10 action10, Action11 action11, Action12 action12,
1660             Action13 action13, Action14 action14, Action15 action15,
1661             Action16 action16, Action17 action17, Action18 action18,
1662             Action19 action19, Action20 action20, Action21 action21,
1663             Action22 action22, Action23 action23, Action24 action24,
1664             Action25 action25, Action26 action26, Action27 action27,
1665             Action28 action28, Action29 action29, Action30 action30,
1666             Action31 action31, Action32 action32, Action33 action33,
1667             Action34 action34, Action35 action35, Action36 action36) {
1668   if (check0(input)) return action0(action_arg);
1669   if (check1(input)) return action1(action_arg);
1670   if (check2(input)) return action2(action_arg);
1671   if (check3(input)) return action3(action_arg);
1672   if (check4(input)) return action4(action_arg);
1673   if (check5(input)) return action5(action_arg);
1674   if (check6(input)) return action6(action_arg);
1675   if (check7(input)) return action7(action_arg);
1676   if (check8(input)) return action8(action_arg);
1677   if (check9(input)) return action9(action_arg);
1678   if (check10(input)) return action10(action_arg);
1679   if (check11(input)) return action11(action_arg);
1680   if (check12(input)) return action12(action_arg);
1681   if (check13(input)) return action13(action_arg);
1682   if (check14(input)) return action14(action_arg);
1683   if (check15(input)) return action15(action_arg);
1684   if (check16(input)) return action16(action_arg);
1685   if (check17(input)) return action17(action_arg);
1686   if (check18(input)) return action18(action_arg);
1687   if (check19(input)) return action19(action_arg);
1688   if (check20(input)) return action20(action_arg);
1689   if (check21(input)) return action21(action_arg);
1690   if (check22(input)) return action22(action_arg);
1691   if (check23(input)) return action23(action_arg);
1692   if (check24(input)) return action24(action_arg);
1693   if (check25(input)) return action25(action_arg);
1694   if (check26(input)) return action26(action_arg);
1695   if (check27(input)) return action27(action_arg);
1696   if (check28(input)) return action28(action_arg);
1697   if (check29(input)) return action29(action_arg);
1698   if (check30(input)) return action30(action_arg);
1699   if (check31(input)) return action31(action_arg);
1700   if (check32(input)) return action32(action_arg);
1701   if (check33(input)) return action33(action_arg);
1702   if (check34(input)) return action34(action_arg);
1703   if (check35(input)) return action35(action_arg);
1704   if (check36(input)) return action36(action_arg);
1705   return action_fail(action_arg);
1706 }
1707 
1708 template <
1709     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1710     typename Check1, typename Check2, typename Check3, typename Check4,
1711     typename Check5, typename Check6, typename Check7, typename Check8,
1712     typename Check9, typename Check10, typename Check11, typename Check12,
1713     typename Check13, typename Check14, typename Check15, typename Check16,
1714     typename Check17, typename Check18, typename Check19, typename Check20,
1715     typename Check21, typename Check22, typename Check23, typename Check24,
1716     typename Check25, typename Check26, typename Check27, typename Check28,
1717     typename Check29, typename Check30, typename Check31, typename Check32,
1718     typename Check33, typename Check34, typename Check35, typename Check36,
1719     typename Check37, typename Action0, typename Action1, typename Action2,
1720     typename Action3, typename Action4, typename Action5, typename Action6,
1721     typename Action7, typename Action8, typename Action9, typename Action10,
1722     typename Action11, typename Action12, typename Action13, typename Action14,
1723     typename Action15, typename Action16, typename Action17, typename Action18,
1724     typename Action19, typename Action20, typename Action21, typename Action22,
1725     typename Action23, typename Action24, typename Action25, typename Action26,
1726     typename Action27, typename Action28, typename Action29, typename Action30,
1727     typename Action31, typename Action32, typename Action33, typename Action34,
1728     typename Action35, typename Action36, typename Action37>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37)1729 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1730             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1731             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1732             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1733             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1734             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1735             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1736             Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1737             Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1738             Check32 check32, Check33 check33, Check34 check34, Check35 check35,
1739             Check36 check36, Check37 check37, Action0 action0, Action1 action1,
1740             Action2 action2, Action3 action3, Action4 action4, Action5 action5,
1741             Action6 action6, Action7 action7, Action8 action8, Action9 action9,
1742             Action10 action10, Action11 action11, Action12 action12,
1743             Action13 action13, Action14 action14, Action15 action15,
1744             Action16 action16, Action17 action17, Action18 action18,
1745             Action19 action19, Action20 action20, Action21 action21,
1746             Action22 action22, Action23 action23, Action24 action24,
1747             Action25 action25, Action26 action26, Action27 action27,
1748             Action28 action28, Action29 action29, Action30 action30,
1749             Action31 action31, Action32 action32, Action33 action33,
1750             Action34 action34, Action35 action35, Action36 action36,
1751             Action37 action37) {
1752   if (check0(input)) return action0(action_arg);
1753   if (check1(input)) return action1(action_arg);
1754   if (check2(input)) return action2(action_arg);
1755   if (check3(input)) return action3(action_arg);
1756   if (check4(input)) return action4(action_arg);
1757   if (check5(input)) return action5(action_arg);
1758   if (check6(input)) return action6(action_arg);
1759   if (check7(input)) return action7(action_arg);
1760   if (check8(input)) return action8(action_arg);
1761   if (check9(input)) return action9(action_arg);
1762   if (check10(input)) return action10(action_arg);
1763   if (check11(input)) return action11(action_arg);
1764   if (check12(input)) return action12(action_arg);
1765   if (check13(input)) return action13(action_arg);
1766   if (check14(input)) return action14(action_arg);
1767   if (check15(input)) return action15(action_arg);
1768   if (check16(input)) return action16(action_arg);
1769   if (check17(input)) return action17(action_arg);
1770   if (check18(input)) return action18(action_arg);
1771   if (check19(input)) return action19(action_arg);
1772   if (check20(input)) return action20(action_arg);
1773   if (check21(input)) return action21(action_arg);
1774   if (check22(input)) return action22(action_arg);
1775   if (check23(input)) return action23(action_arg);
1776   if (check24(input)) return action24(action_arg);
1777   if (check25(input)) return action25(action_arg);
1778   if (check26(input)) return action26(action_arg);
1779   if (check27(input)) return action27(action_arg);
1780   if (check28(input)) return action28(action_arg);
1781   if (check29(input)) return action29(action_arg);
1782   if (check30(input)) return action30(action_arg);
1783   if (check31(input)) return action31(action_arg);
1784   if (check32(input)) return action32(action_arg);
1785   if (check33(input)) return action33(action_arg);
1786   if (check34(input)) return action34(action_arg);
1787   if (check35(input)) return action35(action_arg);
1788   if (check36(input)) return action36(action_arg);
1789   if (check37(input)) return action37(action_arg);
1790   return action_fail(action_arg);
1791 }
1792 
1793 template <
1794     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1795     typename Check1, typename Check2, typename Check3, typename Check4,
1796     typename Check5, typename Check6, typename Check7, typename Check8,
1797     typename Check9, typename Check10, typename Check11, typename Check12,
1798     typename Check13, typename Check14, typename Check15, typename Check16,
1799     typename Check17, typename Check18, typename Check19, typename Check20,
1800     typename Check21, typename Check22, typename Check23, typename Check24,
1801     typename Check25, typename Check26, typename Check27, typename Check28,
1802     typename Check29, typename Check30, typename Check31, typename Check32,
1803     typename Check33, typename Check34, typename Check35, typename Check36,
1804     typename Check37, typename Check38, typename Action0, typename Action1,
1805     typename Action2, typename Action3, typename Action4, typename Action5,
1806     typename Action6, typename Action7, typename Action8, typename Action9,
1807     typename Action10, typename Action11, typename Action12, typename Action13,
1808     typename Action14, typename Action15, typename Action16, typename Action17,
1809     typename Action18, typename Action19, typename Action20, typename Action21,
1810     typename Action22, typename Action23, typename Action24, typename Action25,
1811     typename Action26, typename Action27, typename Action28, typename Action29,
1812     typename Action30, typename Action31, typename Action32, typename Action33,
1813     typename Action34, typename Action35, typename Action36, typename Action37,
1814     typename Action38>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38)1815 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1816             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1817             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1818             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1819             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1820             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1821             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1822             Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1823             Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1824             Check32 check32, Check33 check33, Check34 check34, Check35 check35,
1825             Check36 check36, Check37 check37, Check38 check38, Action0 action0,
1826             Action1 action1, Action2 action2, Action3 action3, Action4 action4,
1827             Action5 action5, Action6 action6, Action7 action7, Action8 action8,
1828             Action9 action9, Action10 action10, Action11 action11,
1829             Action12 action12, Action13 action13, Action14 action14,
1830             Action15 action15, Action16 action16, Action17 action17,
1831             Action18 action18, Action19 action19, Action20 action20,
1832             Action21 action21, Action22 action22, Action23 action23,
1833             Action24 action24, Action25 action25, Action26 action26,
1834             Action27 action27, Action28 action28, Action29 action29,
1835             Action30 action30, Action31 action31, Action32 action32,
1836             Action33 action33, Action34 action34, Action35 action35,
1837             Action36 action36, Action37 action37, Action38 action38) {
1838   if (check0(input)) return action0(action_arg);
1839   if (check1(input)) return action1(action_arg);
1840   if (check2(input)) return action2(action_arg);
1841   if (check3(input)) return action3(action_arg);
1842   if (check4(input)) return action4(action_arg);
1843   if (check5(input)) return action5(action_arg);
1844   if (check6(input)) return action6(action_arg);
1845   if (check7(input)) return action7(action_arg);
1846   if (check8(input)) return action8(action_arg);
1847   if (check9(input)) return action9(action_arg);
1848   if (check10(input)) return action10(action_arg);
1849   if (check11(input)) return action11(action_arg);
1850   if (check12(input)) return action12(action_arg);
1851   if (check13(input)) return action13(action_arg);
1852   if (check14(input)) return action14(action_arg);
1853   if (check15(input)) return action15(action_arg);
1854   if (check16(input)) return action16(action_arg);
1855   if (check17(input)) return action17(action_arg);
1856   if (check18(input)) return action18(action_arg);
1857   if (check19(input)) return action19(action_arg);
1858   if (check20(input)) return action20(action_arg);
1859   if (check21(input)) return action21(action_arg);
1860   if (check22(input)) return action22(action_arg);
1861   if (check23(input)) return action23(action_arg);
1862   if (check24(input)) return action24(action_arg);
1863   if (check25(input)) return action25(action_arg);
1864   if (check26(input)) return action26(action_arg);
1865   if (check27(input)) return action27(action_arg);
1866   if (check28(input)) return action28(action_arg);
1867   if (check29(input)) return action29(action_arg);
1868   if (check30(input)) return action30(action_arg);
1869   if (check31(input)) return action31(action_arg);
1870   if (check32(input)) return action32(action_arg);
1871   if (check33(input)) return action33(action_arg);
1872   if (check34(input)) return action34(action_arg);
1873   if (check35(input)) return action35(action_arg);
1874   if (check36(input)) return action36(action_arg);
1875   if (check37(input)) return action37(action_arg);
1876   if (check38(input)) return action38(action_arg);
1877   return action_fail(action_arg);
1878 }
1879 
1880 template <
1881     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1882     typename Check1, typename Check2, typename Check3, typename Check4,
1883     typename Check5, typename Check6, typename Check7, typename Check8,
1884     typename Check9, typename Check10, typename Check11, typename Check12,
1885     typename Check13, typename Check14, typename Check15, typename Check16,
1886     typename Check17, typename Check18, typename Check19, typename Check20,
1887     typename Check21, typename Check22, typename Check23, typename Check24,
1888     typename Check25, typename Check26, typename Check27, typename Check28,
1889     typename Check29, typename Check30, typename Check31, typename Check32,
1890     typename Check33, typename Check34, typename Check35, typename Check36,
1891     typename Check37, typename Check38, typename Check39, typename Action0,
1892     typename Action1, typename Action2, typename Action3, typename Action4,
1893     typename Action5, typename Action6, typename Action7, typename Action8,
1894     typename Action9, typename Action10, typename Action11, typename Action12,
1895     typename Action13, typename Action14, typename Action15, typename Action16,
1896     typename Action17, typename Action18, typename Action19, typename Action20,
1897     typename Action21, typename Action22, typename Action23, typename Action24,
1898     typename Action25, typename Action26, typename Action27, typename Action28,
1899     typename Action29, typename Action30, typename Action31, typename Action32,
1900     typename Action33, typename Action34, typename Action35, typename Action36,
1901     typename Action37, typename Action38, typename Action39>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39)1902 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1903             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1904             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1905             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1906             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1907             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1908             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1909             Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1910             Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1911             Check32 check32, Check33 check33, Check34 check34, Check35 check35,
1912             Check36 check36, Check37 check37, Check38 check38, Check39 check39,
1913             Action0 action0, Action1 action1, Action2 action2, Action3 action3,
1914             Action4 action4, Action5 action5, Action6 action6, Action7 action7,
1915             Action8 action8, Action9 action9, Action10 action10,
1916             Action11 action11, Action12 action12, Action13 action13,
1917             Action14 action14, Action15 action15, Action16 action16,
1918             Action17 action17, Action18 action18, Action19 action19,
1919             Action20 action20, Action21 action21, Action22 action22,
1920             Action23 action23, Action24 action24, Action25 action25,
1921             Action26 action26, Action27 action27, Action28 action28,
1922             Action29 action29, Action30 action30, Action31 action31,
1923             Action32 action32, Action33 action33, Action34 action34,
1924             Action35 action35, Action36 action36, Action37 action37,
1925             Action38 action38, Action39 action39) {
1926   if (check0(input)) return action0(action_arg);
1927   if (check1(input)) return action1(action_arg);
1928   if (check2(input)) return action2(action_arg);
1929   if (check3(input)) return action3(action_arg);
1930   if (check4(input)) return action4(action_arg);
1931   if (check5(input)) return action5(action_arg);
1932   if (check6(input)) return action6(action_arg);
1933   if (check7(input)) return action7(action_arg);
1934   if (check8(input)) return action8(action_arg);
1935   if (check9(input)) return action9(action_arg);
1936   if (check10(input)) return action10(action_arg);
1937   if (check11(input)) return action11(action_arg);
1938   if (check12(input)) return action12(action_arg);
1939   if (check13(input)) return action13(action_arg);
1940   if (check14(input)) return action14(action_arg);
1941   if (check15(input)) return action15(action_arg);
1942   if (check16(input)) return action16(action_arg);
1943   if (check17(input)) return action17(action_arg);
1944   if (check18(input)) return action18(action_arg);
1945   if (check19(input)) return action19(action_arg);
1946   if (check20(input)) return action20(action_arg);
1947   if (check21(input)) return action21(action_arg);
1948   if (check22(input)) return action22(action_arg);
1949   if (check23(input)) return action23(action_arg);
1950   if (check24(input)) return action24(action_arg);
1951   if (check25(input)) return action25(action_arg);
1952   if (check26(input)) return action26(action_arg);
1953   if (check27(input)) return action27(action_arg);
1954   if (check28(input)) return action28(action_arg);
1955   if (check29(input)) return action29(action_arg);
1956   if (check30(input)) return action30(action_arg);
1957   if (check31(input)) return action31(action_arg);
1958   if (check32(input)) return action32(action_arg);
1959   if (check33(input)) return action33(action_arg);
1960   if (check34(input)) return action34(action_arg);
1961   if (check35(input)) return action35(action_arg);
1962   if (check36(input)) return action36(action_arg);
1963   if (check37(input)) return action37(action_arg);
1964   if (check38(input)) return action38(action_arg);
1965   if (check39(input)) return action39(action_arg);
1966   return action_fail(action_arg);
1967 }
1968 
1969 template <
1970     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1971     typename Check1, typename Check2, typename Check3, typename Check4,
1972     typename Check5, typename Check6, typename Check7, typename Check8,
1973     typename Check9, typename Check10, typename Check11, typename Check12,
1974     typename Check13, typename Check14, typename Check15, typename Check16,
1975     typename Check17, typename Check18, typename Check19, typename Check20,
1976     typename Check21, typename Check22, typename Check23, typename Check24,
1977     typename Check25, typename Check26, typename Check27, typename Check28,
1978     typename Check29, typename Check30, typename Check31, typename Check32,
1979     typename Check33, typename Check34, typename Check35, typename Check36,
1980     typename Check37, typename Check38, typename Check39, typename Check40,
1981     typename Action0, typename Action1, typename Action2, typename Action3,
1982     typename Action4, typename Action5, typename Action6, typename Action7,
1983     typename Action8, typename Action9, typename Action10, typename Action11,
1984     typename Action12, typename Action13, typename Action14, typename Action15,
1985     typename Action16, typename Action17, typename Action18, typename Action19,
1986     typename Action20, typename Action21, typename Action22, typename Action23,
1987     typename Action24, typename Action25, typename Action26, typename Action27,
1988     typename Action28, typename Action29, typename Action30, typename Action31,
1989     typename Action32, typename Action33, typename Action34, typename Action35,
1990     typename Action36, typename Action37, typename Action38, typename Action39,
1991     typename Action40>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40)1992 auto IfList(
1993     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
1994     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
1995     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
1996     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
1997     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
1998     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
1999     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2000     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2001     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2002     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2003     Check39 check39, Check40 check40, Action0 action0, Action1 action1,
2004     Action2 action2, Action3 action3, Action4 action4, Action5 action5,
2005     Action6 action6, Action7 action7, Action8 action8, Action9 action9,
2006     Action10 action10, Action11 action11, Action12 action12, Action13 action13,
2007     Action14 action14, Action15 action15, Action16 action16, Action17 action17,
2008     Action18 action18, Action19 action19, Action20 action20, Action21 action21,
2009     Action22 action22, Action23 action23, Action24 action24, Action25 action25,
2010     Action26 action26, Action27 action27, Action28 action28, Action29 action29,
2011     Action30 action30, Action31 action31, Action32 action32, Action33 action33,
2012     Action34 action34, Action35 action35, Action36 action36, Action37 action37,
2013     Action38 action38, Action39 action39, Action40 action40) {
2014   if (check0(input)) return action0(action_arg);
2015   if (check1(input)) return action1(action_arg);
2016   if (check2(input)) return action2(action_arg);
2017   if (check3(input)) return action3(action_arg);
2018   if (check4(input)) return action4(action_arg);
2019   if (check5(input)) return action5(action_arg);
2020   if (check6(input)) return action6(action_arg);
2021   if (check7(input)) return action7(action_arg);
2022   if (check8(input)) return action8(action_arg);
2023   if (check9(input)) return action9(action_arg);
2024   if (check10(input)) return action10(action_arg);
2025   if (check11(input)) return action11(action_arg);
2026   if (check12(input)) return action12(action_arg);
2027   if (check13(input)) return action13(action_arg);
2028   if (check14(input)) return action14(action_arg);
2029   if (check15(input)) return action15(action_arg);
2030   if (check16(input)) return action16(action_arg);
2031   if (check17(input)) return action17(action_arg);
2032   if (check18(input)) return action18(action_arg);
2033   if (check19(input)) return action19(action_arg);
2034   if (check20(input)) return action20(action_arg);
2035   if (check21(input)) return action21(action_arg);
2036   if (check22(input)) return action22(action_arg);
2037   if (check23(input)) return action23(action_arg);
2038   if (check24(input)) return action24(action_arg);
2039   if (check25(input)) return action25(action_arg);
2040   if (check26(input)) return action26(action_arg);
2041   if (check27(input)) return action27(action_arg);
2042   if (check28(input)) return action28(action_arg);
2043   if (check29(input)) return action29(action_arg);
2044   if (check30(input)) return action30(action_arg);
2045   if (check31(input)) return action31(action_arg);
2046   if (check32(input)) return action32(action_arg);
2047   if (check33(input)) return action33(action_arg);
2048   if (check34(input)) return action34(action_arg);
2049   if (check35(input)) return action35(action_arg);
2050   if (check36(input)) return action36(action_arg);
2051   if (check37(input)) return action37(action_arg);
2052   if (check38(input)) return action38(action_arg);
2053   if (check39(input)) return action39(action_arg);
2054   if (check40(input)) return action40(action_arg);
2055   return action_fail(action_arg);
2056 }
2057 
2058 template <
2059     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2060     typename Check1, typename Check2, typename Check3, typename Check4,
2061     typename Check5, typename Check6, typename Check7, typename Check8,
2062     typename Check9, typename Check10, typename Check11, typename Check12,
2063     typename Check13, typename Check14, typename Check15, typename Check16,
2064     typename Check17, typename Check18, typename Check19, typename Check20,
2065     typename Check21, typename Check22, typename Check23, typename Check24,
2066     typename Check25, typename Check26, typename Check27, typename Check28,
2067     typename Check29, typename Check30, typename Check31, typename Check32,
2068     typename Check33, typename Check34, typename Check35, typename Check36,
2069     typename Check37, typename Check38, typename Check39, typename Check40,
2070     typename Check41, typename Action0, typename Action1, typename Action2,
2071     typename Action3, typename Action4, typename Action5, typename Action6,
2072     typename Action7, typename Action8, typename Action9, typename Action10,
2073     typename Action11, typename Action12, typename Action13, typename Action14,
2074     typename Action15, typename Action16, typename Action17, typename Action18,
2075     typename Action19, typename Action20, typename Action21, typename Action22,
2076     typename Action23, typename Action24, typename Action25, typename Action26,
2077     typename Action27, typename Action28, typename Action29, typename Action30,
2078     typename Action31, typename Action32, typename Action33, typename Action34,
2079     typename Action35, typename Action36, typename Action37, typename Action38,
2080     typename Action39, typename Action40, typename Action41>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41)2081 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
2082             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
2083             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
2084             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
2085             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
2086             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
2087             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
2088             Check24 check24, Check25 check25, Check26 check26, Check27 check27,
2089             Check28 check28, Check29 check29, Check30 check30, Check31 check31,
2090             Check32 check32, Check33 check33, Check34 check34, Check35 check35,
2091             Check36 check36, Check37 check37, Check38 check38, Check39 check39,
2092             Check40 check40, Check41 check41, Action0 action0, Action1 action1,
2093             Action2 action2, Action3 action3, Action4 action4, Action5 action5,
2094             Action6 action6, Action7 action7, Action8 action8, Action9 action9,
2095             Action10 action10, Action11 action11, Action12 action12,
2096             Action13 action13, Action14 action14, Action15 action15,
2097             Action16 action16, Action17 action17, Action18 action18,
2098             Action19 action19, Action20 action20, Action21 action21,
2099             Action22 action22, Action23 action23, Action24 action24,
2100             Action25 action25, Action26 action26, Action27 action27,
2101             Action28 action28, Action29 action29, Action30 action30,
2102             Action31 action31, Action32 action32, Action33 action33,
2103             Action34 action34, Action35 action35, Action36 action36,
2104             Action37 action37, Action38 action38, Action39 action39,
2105             Action40 action40, Action41 action41) {
2106   if (check0(input)) return action0(action_arg);
2107   if (check1(input)) return action1(action_arg);
2108   if (check2(input)) return action2(action_arg);
2109   if (check3(input)) return action3(action_arg);
2110   if (check4(input)) return action4(action_arg);
2111   if (check5(input)) return action5(action_arg);
2112   if (check6(input)) return action6(action_arg);
2113   if (check7(input)) return action7(action_arg);
2114   if (check8(input)) return action8(action_arg);
2115   if (check9(input)) return action9(action_arg);
2116   if (check10(input)) return action10(action_arg);
2117   if (check11(input)) return action11(action_arg);
2118   if (check12(input)) return action12(action_arg);
2119   if (check13(input)) return action13(action_arg);
2120   if (check14(input)) return action14(action_arg);
2121   if (check15(input)) return action15(action_arg);
2122   if (check16(input)) return action16(action_arg);
2123   if (check17(input)) return action17(action_arg);
2124   if (check18(input)) return action18(action_arg);
2125   if (check19(input)) return action19(action_arg);
2126   if (check20(input)) return action20(action_arg);
2127   if (check21(input)) return action21(action_arg);
2128   if (check22(input)) return action22(action_arg);
2129   if (check23(input)) return action23(action_arg);
2130   if (check24(input)) return action24(action_arg);
2131   if (check25(input)) return action25(action_arg);
2132   if (check26(input)) return action26(action_arg);
2133   if (check27(input)) return action27(action_arg);
2134   if (check28(input)) return action28(action_arg);
2135   if (check29(input)) return action29(action_arg);
2136   if (check30(input)) return action30(action_arg);
2137   if (check31(input)) return action31(action_arg);
2138   if (check32(input)) return action32(action_arg);
2139   if (check33(input)) return action33(action_arg);
2140   if (check34(input)) return action34(action_arg);
2141   if (check35(input)) return action35(action_arg);
2142   if (check36(input)) return action36(action_arg);
2143   if (check37(input)) return action37(action_arg);
2144   if (check38(input)) return action38(action_arg);
2145   if (check39(input)) return action39(action_arg);
2146   if (check40(input)) return action40(action_arg);
2147   if (check41(input)) return action41(action_arg);
2148   return action_fail(action_arg);
2149 }
2150 
2151 template <
2152     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2153     typename Check1, typename Check2, typename Check3, typename Check4,
2154     typename Check5, typename Check6, typename Check7, typename Check8,
2155     typename Check9, typename Check10, typename Check11, typename Check12,
2156     typename Check13, typename Check14, typename Check15, typename Check16,
2157     typename Check17, typename Check18, typename Check19, typename Check20,
2158     typename Check21, typename Check22, typename Check23, typename Check24,
2159     typename Check25, typename Check26, typename Check27, typename Check28,
2160     typename Check29, typename Check30, typename Check31, typename Check32,
2161     typename Check33, typename Check34, typename Check35, typename Check36,
2162     typename Check37, typename Check38, typename Check39, typename Check40,
2163     typename Check41, typename Check42, typename Action0, typename Action1,
2164     typename Action2, typename Action3, typename Action4, typename Action5,
2165     typename Action6, typename Action7, typename Action8, typename Action9,
2166     typename Action10, typename Action11, typename Action12, typename Action13,
2167     typename Action14, typename Action15, typename Action16, typename Action17,
2168     typename Action18, typename Action19, typename Action20, typename Action21,
2169     typename Action22, typename Action23, typename Action24, typename Action25,
2170     typename Action26, typename Action27, typename Action28, typename Action29,
2171     typename Action30, typename Action31, typename Action32, typename Action33,
2172     typename Action34, typename Action35, typename Action36, typename Action37,
2173     typename Action38, typename Action39, typename Action40, typename Action41,
2174     typename Action42>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42)2175 auto IfList(
2176     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2177     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2178     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2179     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2180     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2181     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2182     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2183     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2184     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2185     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2186     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2187     Action0 action0, Action1 action1, Action2 action2, Action3 action3,
2188     Action4 action4, Action5 action5, Action6 action6, Action7 action7,
2189     Action8 action8, Action9 action9, Action10 action10, Action11 action11,
2190     Action12 action12, Action13 action13, Action14 action14, Action15 action15,
2191     Action16 action16, Action17 action17, Action18 action18, Action19 action19,
2192     Action20 action20, Action21 action21, Action22 action22, Action23 action23,
2193     Action24 action24, Action25 action25, Action26 action26, Action27 action27,
2194     Action28 action28, Action29 action29, Action30 action30, Action31 action31,
2195     Action32 action32, Action33 action33, Action34 action34, Action35 action35,
2196     Action36 action36, Action37 action37, Action38 action38, Action39 action39,
2197     Action40 action40, Action41 action41, Action42 action42) {
2198   if (check0(input)) return action0(action_arg);
2199   if (check1(input)) return action1(action_arg);
2200   if (check2(input)) return action2(action_arg);
2201   if (check3(input)) return action3(action_arg);
2202   if (check4(input)) return action4(action_arg);
2203   if (check5(input)) return action5(action_arg);
2204   if (check6(input)) return action6(action_arg);
2205   if (check7(input)) return action7(action_arg);
2206   if (check8(input)) return action8(action_arg);
2207   if (check9(input)) return action9(action_arg);
2208   if (check10(input)) return action10(action_arg);
2209   if (check11(input)) return action11(action_arg);
2210   if (check12(input)) return action12(action_arg);
2211   if (check13(input)) return action13(action_arg);
2212   if (check14(input)) return action14(action_arg);
2213   if (check15(input)) return action15(action_arg);
2214   if (check16(input)) return action16(action_arg);
2215   if (check17(input)) return action17(action_arg);
2216   if (check18(input)) return action18(action_arg);
2217   if (check19(input)) return action19(action_arg);
2218   if (check20(input)) return action20(action_arg);
2219   if (check21(input)) return action21(action_arg);
2220   if (check22(input)) return action22(action_arg);
2221   if (check23(input)) return action23(action_arg);
2222   if (check24(input)) return action24(action_arg);
2223   if (check25(input)) return action25(action_arg);
2224   if (check26(input)) return action26(action_arg);
2225   if (check27(input)) return action27(action_arg);
2226   if (check28(input)) return action28(action_arg);
2227   if (check29(input)) return action29(action_arg);
2228   if (check30(input)) return action30(action_arg);
2229   if (check31(input)) return action31(action_arg);
2230   if (check32(input)) return action32(action_arg);
2231   if (check33(input)) return action33(action_arg);
2232   if (check34(input)) return action34(action_arg);
2233   if (check35(input)) return action35(action_arg);
2234   if (check36(input)) return action36(action_arg);
2235   if (check37(input)) return action37(action_arg);
2236   if (check38(input)) return action38(action_arg);
2237   if (check39(input)) return action39(action_arg);
2238   if (check40(input)) return action40(action_arg);
2239   if (check41(input)) return action41(action_arg);
2240   if (check42(input)) return action42(action_arg);
2241   return action_fail(action_arg);
2242 }
2243 
2244 template <
2245     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2246     typename Check1, typename Check2, typename Check3, typename Check4,
2247     typename Check5, typename Check6, typename Check7, typename Check8,
2248     typename Check9, typename Check10, typename Check11, typename Check12,
2249     typename Check13, typename Check14, typename Check15, typename Check16,
2250     typename Check17, typename Check18, typename Check19, typename Check20,
2251     typename Check21, typename Check22, typename Check23, typename Check24,
2252     typename Check25, typename Check26, typename Check27, typename Check28,
2253     typename Check29, typename Check30, typename Check31, typename Check32,
2254     typename Check33, typename Check34, typename Check35, typename Check36,
2255     typename Check37, typename Check38, typename Check39, typename Check40,
2256     typename Check41, typename Check42, typename Check43, typename Action0,
2257     typename Action1, typename Action2, typename Action3, typename Action4,
2258     typename Action5, typename Action6, typename Action7, typename Action8,
2259     typename Action9, typename Action10, typename Action11, typename Action12,
2260     typename Action13, typename Action14, typename Action15, typename Action16,
2261     typename Action17, typename Action18, typename Action19, typename Action20,
2262     typename Action21, typename Action22, typename Action23, typename Action24,
2263     typename Action25, typename Action26, typename Action27, typename Action28,
2264     typename Action29, typename Action30, typename Action31, typename Action32,
2265     typename Action33, typename Action34, typename Action35, typename Action36,
2266     typename Action37, typename Action38, typename Action39, typename Action40,
2267     typename Action41, typename Action42, typename Action43>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43)2268 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
2269             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
2270             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
2271             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
2272             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
2273             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
2274             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
2275             Check24 check24, Check25 check25, Check26 check26, Check27 check27,
2276             Check28 check28, Check29 check29, Check30 check30, Check31 check31,
2277             Check32 check32, Check33 check33, Check34 check34, Check35 check35,
2278             Check36 check36, Check37 check37, Check38 check38, Check39 check39,
2279             Check40 check40, Check41 check41, Check42 check42, Check43 check43,
2280             Action0 action0, Action1 action1, Action2 action2, Action3 action3,
2281             Action4 action4, Action5 action5, Action6 action6, Action7 action7,
2282             Action8 action8, Action9 action9, Action10 action10,
2283             Action11 action11, Action12 action12, Action13 action13,
2284             Action14 action14, Action15 action15, Action16 action16,
2285             Action17 action17, Action18 action18, Action19 action19,
2286             Action20 action20, Action21 action21, Action22 action22,
2287             Action23 action23, Action24 action24, Action25 action25,
2288             Action26 action26, Action27 action27, Action28 action28,
2289             Action29 action29, Action30 action30, Action31 action31,
2290             Action32 action32, Action33 action33, Action34 action34,
2291             Action35 action35, Action36 action36, Action37 action37,
2292             Action38 action38, Action39 action39, Action40 action40,
2293             Action41 action41, Action42 action42, Action43 action43) {
2294   if (check0(input)) return action0(action_arg);
2295   if (check1(input)) return action1(action_arg);
2296   if (check2(input)) return action2(action_arg);
2297   if (check3(input)) return action3(action_arg);
2298   if (check4(input)) return action4(action_arg);
2299   if (check5(input)) return action5(action_arg);
2300   if (check6(input)) return action6(action_arg);
2301   if (check7(input)) return action7(action_arg);
2302   if (check8(input)) return action8(action_arg);
2303   if (check9(input)) return action9(action_arg);
2304   if (check10(input)) return action10(action_arg);
2305   if (check11(input)) return action11(action_arg);
2306   if (check12(input)) return action12(action_arg);
2307   if (check13(input)) return action13(action_arg);
2308   if (check14(input)) return action14(action_arg);
2309   if (check15(input)) return action15(action_arg);
2310   if (check16(input)) return action16(action_arg);
2311   if (check17(input)) return action17(action_arg);
2312   if (check18(input)) return action18(action_arg);
2313   if (check19(input)) return action19(action_arg);
2314   if (check20(input)) return action20(action_arg);
2315   if (check21(input)) return action21(action_arg);
2316   if (check22(input)) return action22(action_arg);
2317   if (check23(input)) return action23(action_arg);
2318   if (check24(input)) return action24(action_arg);
2319   if (check25(input)) return action25(action_arg);
2320   if (check26(input)) return action26(action_arg);
2321   if (check27(input)) return action27(action_arg);
2322   if (check28(input)) return action28(action_arg);
2323   if (check29(input)) return action29(action_arg);
2324   if (check30(input)) return action30(action_arg);
2325   if (check31(input)) return action31(action_arg);
2326   if (check32(input)) return action32(action_arg);
2327   if (check33(input)) return action33(action_arg);
2328   if (check34(input)) return action34(action_arg);
2329   if (check35(input)) return action35(action_arg);
2330   if (check36(input)) return action36(action_arg);
2331   if (check37(input)) return action37(action_arg);
2332   if (check38(input)) return action38(action_arg);
2333   if (check39(input)) return action39(action_arg);
2334   if (check40(input)) return action40(action_arg);
2335   if (check41(input)) return action41(action_arg);
2336   if (check42(input)) return action42(action_arg);
2337   if (check43(input)) return action43(action_arg);
2338   return action_fail(action_arg);
2339 }
2340 
2341 template <
2342     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2343     typename Check1, typename Check2, typename Check3, typename Check4,
2344     typename Check5, typename Check6, typename Check7, typename Check8,
2345     typename Check9, typename Check10, typename Check11, typename Check12,
2346     typename Check13, typename Check14, typename Check15, typename Check16,
2347     typename Check17, typename Check18, typename Check19, typename Check20,
2348     typename Check21, typename Check22, typename Check23, typename Check24,
2349     typename Check25, typename Check26, typename Check27, typename Check28,
2350     typename Check29, typename Check30, typename Check31, typename Check32,
2351     typename Check33, typename Check34, typename Check35, typename Check36,
2352     typename Check37, typename Check38, typename Check39, typename Check40,
2353     typename Check41, typename Check42, typename Check43, typename Check44,
2354     typename Action0, typename Action1, typename Action2, typename Action3,
2355     typename Action4, typename Action5, typename Action6, typename Action7,
2356     typename Action8, typename Action9, typename Action10, typename Action11,
2357     typename Action12, typename Action13, typename Action14, typename Action15,
2358     typename Action16, typename Action17, typename Action18, typename Action19,
2359     typename Action20, typename Action21, typename Action22, typename Action23,
2360     typename Action24, typename Action25, typename Action26, typename Action27,
2361     typename Action28, typename Action29, typename Action30, typename Action31,
2362     typename Action32, typename Action33, typename Action34, typename Action35,
2363     typename Action36, typename Action37, typename Action38, typename Action39,
2364     typename Action40, typename Action41, typename Action42, typename Action43,
2365     typename Action44>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44)2366 auto IfList(
2367     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2368     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2369     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2370     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2371     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2372     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2373     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2374     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2375     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2376     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2377     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2378     Check43 check43, Check44 check44, Action0 action0, Action1 action1,
2379     Action2 action2, Action3 action3, Action4 action4, Action5 action5,
2380     Action6 action6, Action7 action7, Action8 action8, Action9 action9,
2381     Action10 action10, Action11 action11, Action12 action12, Action13 action13,
2382     Action14 action14, Action15 action15, Action16 action16, Action17 action17,
2383     Action18 action18, Action19 action19, Action20 action20, Action21 action21,
2384     Action22 action22, Action23 action23, Action24 action24, Action25 action25,
2385     Action26 action26, Action27 action27, Action28 action28, Action29 action29,
2386     Action30 action30, Action31 action31, Action32 action32, Action33 action33,
2387     Action34 action34, Action35 action35, Action36 action36, Action37 action37,
2388     Action38 action38, Action39 action39, Action40 action40, Action41 action41,
2389     Action42 action42, Action43 action43, Action44 action44) {
2390   if (check0(input)) return action0(action_arg);
2391   if (check1(input)) return action1(action_arg);
2392   if (check2(input)) return action2(action_arg);
2393   if (check3(input)) return action3(action_arg);
2394   if (check4(input)) return action4(action_arg);
2395   if (check5(input)) return action5(action_arg);
2396   if (check6(input)) return action6(action_arg);
2397   if (check7(input)) return action7(action_arg);
2398   if (check8(input)) return action8(action_arg);
2399   if (check9(input)) return action9(action_arg);
2400   if (check10(input)) return action10(action_arg);
2401   if (check11(input)) return action11(action_arg);
2402   if (check12(input)) return action12(action_arg);
2403   if (check13(input)) return action13(action_arg);
2404   if (check14(input)) return action14(action_arg);
2405   if (check15(input)) return action15(action_arg);
2406   if (check16(input)) return action16(action_arg);
2407   if (check17(input)) return action17(action_arg);
2408   if (check18(input)) return action18(action_arg);
2409   if (check19(input)) return action19(action_arg);
2410   if (check20(input)) return action20(action_arg);
2411   if (check21(input)) return action21(action_arg);
2412   if (check22(input)) return action22(action_arg);
2413   if (check23(input)) return action23(action_arg);
2414   if (check24(input)) return action24(action_arg);
2415   if (check25(input)) return action25(action_arg);
2416   if (check26(input)) return action26(action_arg);
2417   if (check27(input)) return action27(action_arg);
2418   if (check28(input)) return action28(action_arg);
2419   if (check29(input)) return action29(action_arg);
2420   if (check30(input)) return action30(action_arg);
2421   if (check31(input)) return action31(action_arg);
2422   if (check32(input)) return action32(action_arg);
2423   if (check33(input)) return action33(action_arg);
2424   if (check34(input)) return action34(action_arg);
2425   if (check35(input)) return action35(action_arg);
2426   if (check36(input)) return action36(action_arg);
2427   if (check37(input)) return action37(action_arg);
2428   if (check38(input)) return action38(action_arg);
2429   if (check39(input)) return action39(action_arg);
2430   if (check40(input)) return action40(action_arg);
2431   if (check41(input)) return action41(action_arg);
2432   if (check42(input)) return action42(action_arg);
2433   if (check43(input)) return action43(action_arg);
2434   if (check44(input)) return action44(action_arg);
2435   return action_fail(action_arg);
2436 }
2437 
2438 template <
2439     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2440     typename Check1, typename Check2, typename Check3, typename Check4,
2441     typename Check5, typename Check6, typename Check7, typename Check8,
2442     typename Check9, typename Check10, typename Check11, typename Check12,
2443     typename Check13, typename Check14, typename Check15, typename Check16,
2444     typename Check17, typename Check18, typename Check19, typename Check20,
2445     typename Check21, typename Check22, typename Check23, typename Check24,
2446     typename Check25, typename Check26, typename Check27, typename Check28,
2447     typename Check29, typename Check30, typename Check31, typename Check32,
2448     typename Check33, typename Check34, typename Check35, typename Check36,
2449     typename Check37, typename Check38, typename Check39, typename Check40,
2450     typename Check41, typename Check42, typename Check43, typename Check44,
2451     typename Check45, typename Action0, typename Action1, typename Action2,
2452     typename Action3, typename Action4, typename Action5, typename Action6,
2453     typename Action7, typename Action8, typename Action9, typename Action10,
2454     typename Action11, typename Action12, typename Action13, typename Action14,
2455     typename Action15, typename Action16, typename Action17, typename Action18,
2456     typename Action19, typename Action20, typename Action21, typename Action22,
2457     typename Action23, typename Action24, typename Action25, typename Action26,
2458     typename Action27, typename Action28, typename Action29, typename Action30,
2459     typename Action31, typename Action32, typename Action33, typename Action34,
2460     typename Action35, typename Action36, typename Action37, typename Action38,
2461     typename Action39, typename Action40, typename Action41, typename Action42,
2462     typename Action43, typename Action44, typename Action45>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45)2463 auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
2464             Check0 check0, Check1 check1, Check2 check2, Check3 check3,
2465             Check4 check4, Check5 check5, Check6 check6, Check7 check7,
2466             Check8 check8, Check9 check9, Check10 check10, Check11 check11,
2467             Check12 check12, Check13 check13, Check14 check14, Check15 check15,
2468             Check16 check16, Check17 check17, Check18 check18, Check19 check19,
2469             Check20 check20, Check21 check21, Check22 check22, Check23 check23,
2470             Check24 check24, Check25 check25, Check26 check26, Check27 check27,
2471             Check28 check28, Check29 check29, Check30 check30, Check31 check31,
2472             Check32 check32, Check33 check33, Check34 check34, Check35 check35,
2473             Check36 check36, Check37 check37, Check38 check38, Check39 check39,
2474             Check40 check40, Check41 check41, Check42 check42, Check43 check43,
2475             Check44 check44, Check45 check45, Action0 action0, Action1 action1,
2476             Action2 action2, Action3 action3, Action4 action4, Action5 action5,
2477             Action6 action6, Action7 action7, Action8 action8, Action9 action9,
2478             Action10 action10, Action11 action11, Action12 action12,
2479             Action13 action13, Action14 action14, Action15 action15,
2480             Action16 action16, Action17 action17, Action18 action18,
2481             Action19 action19, Action20 action20, Action21 action21,
2482             Action22 action22, Action23 action23, Action24 action24,
2483             Action25 action25, Action26 action26, Action27 action27,
2484             Action28 action28, Action29 action29, Action30 action30,
2485             Action31 action31, Action32 action32, Action33 action33,
2486             Action34 action34, Action35 action35, Action36 action36,
2487             Action37 action37, Action38 action38, Action39 action39,
2488             Action40 action40, Action41 action41, Action42 action42,
2489             Action43 action43, Action44 action44, Action45 action45) {
2490   if (check0(input)) return action0(action_arg);
2491   if (check1(input)) return action1(action_arg);
2492   if (check2(input)) return action2(action_arg);
2493   if (check3(input)) return action3(action_arg);
2494   if (check4(input)) return action4(action_arg);
2495   if (check5(input)) return action5(action_arg);
2496   if (check6(input)) return action6(action_arg);
2497   if (check7(input)) return action7(action_arg);
2498   if (check8(input)) return action8(action_arg);
2499   if (check9(input)) return action9(action_arg);
2500   if (check10(input)) return action10(action_arg);
2501   if (check11(input)) return action11(action_arg);
2502   if (check12(input)) return action12(action_arg);
2503   if (check13(input)) return action13(action_arg);
2504   if (check14(input)) return action14(action_arg);
2505   if (check15(input)) return action15(action_arg);
2506   if (check16(input)) return action16(action_arg);
2507   if (check17(input)) return action17(action_arg);
2508   if (check18(input)) return action18(action_arg);
2509   if (check19(input)) return action19(action_arg);
2510   if (check20(input)) return action20(action_arg);
2511   if (check21(input)) return action21(action_arg);
2512   if (check22(input)) return action22(action_arg);
2513   if (check23(input)) return action23(action_arg);
2514   if (check24(input)) return action24(action_arg);
2515   if (check25(input)) return action25(action_arg);
2516   if (check26(input)) return action26(action_arg);
2517   if (check27(input)) return action27(action_arg);
2518   if (check28(input)) return action28(action_arg);
2519   if (check29(input)) return action29(action_arg);
2520   if (check30(input)) return action30(action_arg);
2521   if (check31(input)) return action31(action_arg);
2522   if (check32(input)) return action32(action_arg);
2523   if (check33(input)) return action33(action_arg);
2524   if (check34(input)) return action34(action_arg);
2525   if (check35(input)) return action35(action_arg);
2526   if (check36(input)) return action36(action_arg);
2527   if (check37(input)) return action37(action_arg);
2528   if (check38(input)) return action38(action_arg);
2529   if (check39(input)) return action39(action_arg);
2530   if (check40(input)) return action40(action_arg);
2531   if (check41(input)) return action41(action_arg);
2532   if (check42(input)) return action42(action_arg);
2533   if (check43(input)) return action43(action_arg);
2534   if (check44(input)) return action44(action_arg);
2535   if (check45(input)) return action45(action_arg);
2536   return action_fail(action_arg);
2537 }
2538 
2539 template <
2540     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2541     typename Check1, typename Check2, typename Check3, typename Check4,
2542     typename Check5, typename Check6, typename Check7, typename Check8,
2543     typename Check9, typename Check10, typename Check11, typename Check12,
2544     typename Check13, typename Check14, typename Check15, typename Check16,
2545     typename Check17, typename Check18, typename Check19, typename Check20,
2546     typename Check21, typename Check22, typename Check23, typename Check24,
2547     typename Check25, typename Check26, typename Check27, typename Check28,
2548     typename Check29, typename Check30, typename Check31, typename Check32,
2549     typename Check33, typename Check34, typename Check35, typename Check36,
2550     typename Check37, typename Check38, typename Check39, typename Check40,
2551     typename Check41, typename Check42, typename Check43, typename Check44,
2552     typename Check45, typename Check46, typename Action0, typename Action1,
2553     typename Action2, typename Action3, typename Action4, typename Action5,
2554     typename Action6, typename Action7, typename Action8, typename Action9,
2555     typename Action10, typename Action11, typename Action12, typename Action13,
2556     typename Action14, typename Action15, typename Action16, typename Action17,
2557     typename Action18, typename Action19, typename Action20, typename Action21,
2558     typename Action22, typename Action23, typename Action24, typename Action25,
2559     typename Action26, typename Action27, typename Action28, typename Action29,
2560     typename Action30, typename Action31, typename Action32, typename Action33,
2561     typename Action34, typename Action35, typename Action36, typename Action37,
2562     typename Action38, typename Action39, typename Action40, typename Action41,
2563     typename Action42, typename Action43, typename Action44, typename Action45,
2564     typename Action46>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Check46 check46,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45,Action46 action46)2565 auto IfList(
2566     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2567     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2568     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2569     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2570     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2571     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2572     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2573     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2574     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2575     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2576     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2577     Check43 check43, Check44 check44, Check45 check45, Check46 check46,
2578     Action0 action0, Action1 action1, Action2 action2, Action3 action3,
2579     Action4 action4, Action5 action5, Action6 action6, Action7 action7,
2580     Action8 action8, Action9 action9, Action10 action10, Action11 action11,
2581     Action12 action12, Action13 action13, Action14 action14, Action15 action15,
2582     Action16 action16, Action17 action17, Action18 action18, Action19 action19,
2583     Action20 action20, Action21 action21, Action22 action22, Action23 action23,
2584     Action24 action24, Action25 action25, Action26 action26, Action27 action27,
2585     Action28 action28, Action29 action29, Action30 action30, Action31 action31,
2586     Action32 action32, Action33 action33, Action34 action34, Action35 action35,
2587     Action36 action36, Action37 action37, Action38 action38, Action39 action39,
2588     Action40 action40, Action41 action41, Action42 action42, Action43 action43,
2589     Action44 action44, Action45 action45, Action46 action46) {
2590   if (check0(input)) return action0(action_arg);
2591   if (check1(input)) return action1(action_arg);
2592   if (check2(input)) return action2(action_arg);
2593   if (check3(input)) return action3(action_arg);
2594   if (check4(input)) return action4(action_arg);
2595   if (check5(input)) return action5(action_arg);
2596   if (check6(input)) return action6(action_arg);
2597   if (check7(input)) return action7(action_arg);
2598   if (check8(input)) return action8(action_arg);
2599   if (check9(input)) return action9(action_arg);
2600   if (check10(input)) return action10(action_arg);
2601   if (check11(input)) return action11(action_arg);
2602   if (check12(input)) return action12(action_arg);
2603   if (check13(input)) return action13(action_arg);
2604   if (check14(input)) return action14(action_arg);
2605   if (check15(input)) return action15(action_arg);
2606   if (check16(input)) return action16(action_arg);
2607   if (check17(input)) return action17(action_arg);
2608   if (check18(input)) return action18(action_arg);
2609   if (check19(input)) return action19(action_arg);
2610   if (check20(input)) return action20(action_arg);
2611   if (check21(input)) return action21(action_arg);
2612   if (check22(input)) return action22(action_arg);
2613   if (check23(input)) return action23(action_arg);
2614   if (check24(input)) return action24(action_arg);
2615   if (check25(input)) return action25(action_arg);
2616   if (check26(input)) return action26(action_arg);
2617   if (check27(input)) return action27(action_arg);
2618   if (check28(input)) return action28(action_arg);
2619   if (check29(input)) return action29(action_arg);
2620   if (check30(input)) return action30(action_arg);
2621   if (check31(input)) return action31(action_arg);
2622   if (check32(input)) return action32(action_arg);
2623   if (check33(input)) return action33(action_arg);
2624   if (check34(input)) return action34(action_arg);
2625   if (check35(input)) return action35(action_arg);
2626   if (check36(input)) return action36(action_arg);
2627   if (check37(input)) return action37(action_arg);
2628   if (check38(input)) return action38(action_arg);
2629   if (check39(input)) return action39(action_arg);
2630   if (check40(input)) return action40(action_arg);
2631   if (check41(input)) return action41(action_arg);
2632   if (check42(input)) return action42(action_arg);
2633   if (check43(input)) return action43(action_arg);
2634   if (check44(input)) return action44(action_arg);
2635   if (check45(input)) return action45(action_arg);
2636   if (check46(input)) return action46(action_arg);
2637   return action_fail(action_arg);
2638 }
2639 
2640 template <
2641     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2642     typename Check1, typename Check2, typename Check3, typename Check4,
2643     typename Check5, typename Check6, typename Check7, typename Check8,
2644     typename Check9, typename Check10, typename Check11, typename Check12,
2645     typename Check13, typename Check14, typename Check15, typename Check16,
2646     typename Check17, typename Check18, typename Check19, typename Check20,
2647     typename Check21, typename Check22, typename Check23, typename Check24,
2648     typename Check25, typename Check26, typename Check27, typename Check28,
2649     typename Check29, typename Check30, typename Check31, typename Check32,
2650     typename Check33, typename Check34, typename Check35, typename Check36,
2651     typename Check37, typename Check38, typename Check39, typename Check40,
2652     typename Check41, typename Check42, typename Check43, typename Check44,
2653     typename Check45, typename Check46, typename Check47, typename Action0,
2654     typename Action1, typename Action2, typename Action3, typename Action4,
2655     typename Action5, typename Action6, typename Action7, typename Action8,
2656     typename Action9, typename Action10, typename Action11, typename Action12,
2657     typename Action13, typename Action14, typename Action15, typename Action16,
2658     typename Action17, typename Action18, typename Action19, typename Action20,
2659     typename Action21, typename Action22, typename Action23, typename Action24,
2660     typename Action25, typename Action26, typename Action27, typename Action28,
2661     typename Action29, typename Action30, typename Action31, typename Action32,
2662     typename Action33, typename Action34, typename Action35, typename Action36,
2663     typename Action37, typename Action38, typename Action39, typename Action40,
2664     typename Action41, typename Action42, typename Action43, typename Action44,
2665     typename Action45, typename Action46, typename Action47>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Check46 check46,Check47 check47,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45,Action46 action46,Action47 action47)2666 auto IfList(
2667     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2668     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2669     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2670     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2671     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2672     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2673     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2674     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2675     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2676     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2677     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2678     Check43 check43, Check44 check44, Check45 check45, Check46 check46,
2679     Check47 check47, Action0 action0, Action1 action1, Action2 action2,
2680     Action3 action3, Action4 action4, Action5 action5, Action6 action6,
2681     Action7 action7, Action8 action8, Action9 action9, Action10 action10,
2682     Action11 action11, Action12 action12, Action13 action13, Action14 action14,
2683     Action15 action15, Action16 action16, Action17 action17, Action18 action18,
2684     Action19 action19, Action20 action20, Action21 action21, Action22 action22,
2685     Action23 action23, Action24 action24, Action25 action25, Action26 action26,
2686     Action27 action27, Action28 action28, Action29 action29, Action30 action30,
2687     Action31 action31, Action32 action32, Action33 action33, Action34 action34,
2688     Action35 action35, Action36 action36, Action37 action37, Action38 action38,
2689     Action39 action39, Action40 action40, Action41 action41, Action42 action42,
2690     Action43 action43, Action44 action44, Action45 action45, Action46 action46,
2691     Action47 action47) {
2692   if (check0(input)) return action0(action_arg);
2693   if (check1(input)) return action1(action_arg);
2694   if (check2(input)) return action2(action_arg);
2695   if (check3(input)) return action3(action_arg);
2696   if (check4(input)) return action4(action_arg);
2697   if (check5(input)) return action5(action_arg);
2698   if (check6(input)) return action6(action_arg);
2699   if (check7(input)) return action7(action_arg);
2700   if (check8(input)) return action8(action_arg);
2701   if (check9(input)) return action9(action_arg);
2702   if (check10(input)) return action10(action_arg);
2703   if (check11(input)) return action11(action_arg);
2704   if (check12(input)) return action12(action_arg);
2705   if (check13(input)) return action13(action_arg);
2706   if (check14(input)) return action14(action_arg);
2707   if (check15(input)) return action15(action_arg);
2708   if (check16(input)) return action16(action_arg);
2709   if (check17(input)) return action17(action_arg);
2710   if (check18(input)) return action18(action_arg);
2711   if (check19(input)) return action19(action_arg);
2712   if (check20(input)) return action20(action_arg);
2713   if (check21(input)) return action21(action_arg);
2714   if (check22(input)) return action22(action_arg);
2715   if (check23(input)) return action23(action_arg);
2716   if (check24(input)) return action24(action_arg);
2717   if (check25(input)) return action25(action_arg);
2718   if (check26(input)) return action26(action_arg);
2719   if (check27(input)) return action27(action_arg);
2720   if (check28(input)) return action28(action_arg);
2721   if (check29(input)) return action29(action_arg);
2722   if (check30(input)) return action30(action_arg);
2723   if (check31(input)) return action31(action_arg);
2724   if (check32(input)) return action32(action_arg);
2725   if (check33(input)) return action33(action_arg);
2726   if (check34(input)) return action34(action_arg);
2727   if (check35(input)) return action35(action_arg);
2728   if (check36(input)) return action36(action_arg);
2729   if (check37(input)) return action37(action_arg);
2730   if (check38(input)) return action38(action_arg);
2731   if (check39(input)) return action39(action_arg);
2732   if (check40(input)) return action40(action_arg);
2733   if (check41(input)) return action41(action_arg);
2734   if (check42(input)) return action42(action_arg);
2735   if (check43(input)) return action43(action_arg);
2736   if (check44(input)) return action44(action_arg);
2737   if (check45(input)) return action45(action_arg);
2738   if (check46(input)) return action46(action_arg);
2739   if (check47(input)) return action47(action_arg);
2740   return action_fail(action_arg);
2741 }
2742 
2743 template <
2744     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2745     typename Check1, typename Check2, typename Check3, typename Check4,
2746     typename Check5, typename Check6, typename Check7, typename Check8,
2747     typename Check9, typename Check10, typename Check11, typename Check12,
2748     typename Check13, typename Check14, typename Check15, typename Check16,
2749     typename Check17, typename Check18, typename Check19, typename Check20,
2750     typename Check21, typename Check22, typename Check23, typename Check24,
2751     typename Check25, typename Check26, typename Check27, typename Check28,
2752     typename Check29, typename Check30, typename Check31, typename Check32,
2753     typename Check33, typename Check34, typename Check35, typename Check36,
2754     typename Check37, typename Check38, typename Check39, typename Check40,
2755     typename Check41, typename Check42, typename Check43, typename Check44,
2756     typename Check45, typename Check46, typename Check47, typename Check48,
2757     typename Action0, typename Action1, typename Action2, typename Action3,
2758     typename Action4, typename Action5, typename Action6, typename Action7,
2759     typename Action8, typename Action9, typename Action10, typename Action11,
2760     typename Action12, typename Action13, typename Action14, typename Action15,
2761     typename Action16, typename Action17, typename Action18, typename Action19,
2762     typename Action20, typename Action21, typename Action22, typename Action23,
2763     typename Action24, typename Action25, typename Action26, typename Action27,
2764     typename Action28, typename Action29, typename Action30, typename Action31,
2765     typename Action32, typename Action33, typename Action34, typename Action35,
2766     typename Action36, typename Action37, typename Action38, typename Action39,
2767     typename Action40, typename Action41, typename Action42, typename Action43,
2768     typename Action44, typename Action45, typename Action46, typename Action47,
2769     typename Action48>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Check46 check46,Check47 check47,Check48 check48,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45,Action46 action46,Action47 action47,Action48 action48)2770 auto IfList(
2771     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2772     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2773     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2774     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2775     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2776     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2777     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2778     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2779     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2780     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2781     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2782     Check43 check43, Check44 check44, Check45 check45, Check46 check46,
2783     Check47 check47, Check48 check48, Action0 action0, Action1 action1,
2784     Action2 action2, Action3 action3, Action4 action4, Action5 action5,
2785     Action6 action6, Action7 action7, Action8 action8, Action9 action9,
2786     Action10 action10, Action11 action11, Action12 action12, Action13 action13,
2787     Action14 action14, Action15 action15, Action16 action16, Action17 action17,
2788     Action18 action18, Action19 action19, Action20 action20, Action21 action21,
2789     Action22 action22, Action23 action23, Action24 action24, Action25 action25,
2790     Action26 action26, Action27 action27, Action28 action28, Action29 action29,
2791     Action30 action30, Action31 action31, Action32 action32, Action33 action33,
2792     Action34 action34, Action35 action35, Action36 action36, Action37 action37,
2793     Action38 action38, Action39 action39, Action40 action40, Action41 action41,
2794     Action42 action42, Action43 action43, Action44 action44, Action45 action45,
2795     Action46 action46, Action47 action47, Action48 action48) {
2796   if (check0(input)) return action0(action_arg);
2797   if (check1(input)) return action1(action_arg);
2798   if (check2(input)) return action2(action_arg);
2799   if (check3(input)) return action3(action_arg);
2800   if (check4(input)) return action4(action_arg);
2801   if (check5(input)) return action5(action_arg);
2802   if (check6(input)) return action6(action_arg);
2803   if (check7(input)) return action7(action_arg);
2804   if (check8(input)) return action8(action_arg);
2805   if (check9(input)) return action9(action_arg);
2806   if (check10(input)) return action10(action_arg);
2807   if (check11(input)) return action11(action_arg);
2808   if (check12(input)) return action12(action_arg);
2809   if (check13(input)) return action13(action_arg);
2810   if (check14(input)) return action14(action_arg);
2811   if (check15(input)) return action15(action_arg);
2812   if (check16(input)) return action16(action_arg);
2813   if (check17(input)) return action17(action_arg);
2814   if (check18(input)) return action18(action_arg);
2815   if (check19(input)) return action19(action_arg);
2816   if (check20(input)) return action20(action_arg);
2817   if (check21(input)) return action21(action_arg);
2818   if (check22(input)) return action22(action_arg);
2819   if (check23(input)) return action23(action_arg);
2820   if (check24(input)) return action24(action_arg);
2821   if (check25(input)) return action25(action_arg);
2822   if (check26(input)) return action26(action_arg);
2823   if (check27(input)) return action27(action_arg);
2824   if (check28(input)) return action28(action_arg);
2825   if (check29(input)) return action29(action_arg);
2826   if (check30(input)) return action30(action_arg);
2827   if (check31(input)) return action31(action_arg);
2828   if (check32(input)) return action32(action_arg);
2829   if (check33(input)) return action33(action_arg);
2830   if (check34(input)) return action34(action_arg);
2831   if (check35(input)) return action35(action_arg);
2832   if (check36(input)) return action36(action_arg);
2833   if (check37(input)) return action37(action_arg);
2834   if (check38(input)) return action38(action_arg);
2835   if (check39(input)) return action39(action_arg);
2836   if (check40(input)) return action40(action_arg);
2837   if (check41(input)) return action41(action_arg);
2838   if (check42(input)) return action42(action_arg);
2839   if (check43(input)) return action43(action_arg);
2840   if (check44(input)) return action44(action_arg);
2841   if (check45(input)) return action45(action_arg);
2842   if (check46(input)) return action46(action_arg);
2843   if (check47(input)) return action47(action_arg);
2844   if (check48(input)) return action48(action_arg);
2845   return action_fail(action_arg);
2846 }
2847 
2848 template <
2849     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2850     typename Check1, typename Check2, typename Check3, typename Check4,
2851     typename Check5, typename Check6, typename Check7, typename Check8,
2852     typename Check9, typename Check10, typename Check11, typename Check12,
2853     typename Check13, typename Check14, typename Check15, typename Check16,
2854     typename Check17, typename Check18, typename Check19, typename Check20,
2855     typename Check21, typename Check22, typename Check23, typename Check24,
2856     typename Check25, typename Check26, typename Check27, typename Check28,
2857     typename Check29, typename Check30, typename Check31, typename Check32,
2858     typename Check33, typename Check34, typename Check35, typename Check36,
2859     typename Check37, typename Check38, typename Check39, typename Check40,
2860     typename Check41, typename Check42, typename Check43, typename Check44,
2861     typename Check45, typename Check46, typename Check47, typename Check48,
2862     typename Check49, typename Action0, typename Action1, typename Action2,
2863     typename Action3, typename Action4, typename Action5, typename Action6,
2864     typename Action7, typename Action8, typename Action9, typename Action10,
2865     typename Action11, typename Action12, typename Action13, typename Action14,
2866     typename Action15, typename Action16, typename Action17, typename Action18,
2867     typename Action19, typename Action20, typename Action21, typename Action22,
2868     typename Action23, typename Action24, typename Action25, typename Action26,
2869     typename Action27, typename Action28, typename Action29, typename Action30,
2870     typename Action31, typename Action32, typename Action33, typename Action34,
2871     typename Action35, typename Action36, typename Action37, typename Action38,
2872     typename Action39, typename Action40, typename Action41, typename Action42,
2873     typename Action43, typename Action44, typename Action45, typename Action46,
2874     typename Action47, typename Action48, typename Action49>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Check46 check46,Check47 check47,Check48 check48,Check49 check49,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45,Action46 action46,Action47 action47,Action48 action48,Action49 action49)2875 auto IfList(
2876     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2877     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2878     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2879     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2880     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2881     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2882     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2883     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2884     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2885     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2886     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2887     Check43 check43, Check44 check44, Check45 check45, Check46 check46,
2888     Check47 check47, Check48 check48, Check49 check49, Action0 action0,
2889     Action1 action1, Action2 action2, Action3 action3, Action4 action4,
2890     Action5 action5, Action6 action6, Action7 action7, Action8 action8,
2891     Action9 action9, Action10 action10, Action11 action11, Action12 action12,
2892     Action13 action13, Action14 action14, Action15 action15, Action16 action16,
2893     Action17 action17, Action18 action18, Action19 action19, Action20 action20,
2894     Action21 action21, Action22 action22, Action23 action23, Action24 action24,
2895     Action25 action25, Action26 action26, Action27 action27, Action28 action28,
2896     Action29 action29, Action30 action30, Action31 action31, Action32 action32,
2897     Action33 action33, Action34 action34, Action35 action35, Action36 action36,
2898     Action37 action37, Action38 action38, Action39 action39, Action40 action40,
2899     Action41 action41, Action42 action42, Action43 action43, Action44 action44,
2900     Action45 action45, Action46 action46, Action47 action47, Action48 action48,
2901     Action49 action49) {
2902   if (check0(input)) return action0(action_arg);
2903   if (check1(input)) return action1(action_arg);
2904   if (check2(input)) return action2(action_arg);
2905   if (check3(input)) return action3(action_arg);
2906   if (check4(input)) return action4(action_arg);
2907   if (check5(input)) return action5(action_arg);
2908   if (check6(input)) return action6(action_arg);
2909   if (check7(input)) return action7(action_arg);
2910   if (check8(input)) return action8(action_arg);
2911   if (check9(input)) return action9(action_arg);
2912   if (check10(input)) return action10(action_arg);
2913   if (check11(input)) return action11(action_arg);
2914   if (check12(input)) return action12(action_arg);
2915   if (check13(input)) return action13(action_arg);
2916   if (check14(input)) return action14(action_arg);
2917   if (check15(input)) return action15(action_arg);
2918   if (check16(input)) return action16(action_arg);
2919   if (check17(input)) return action17(action_arg);
2920   if (check18(input)) return action18(action_arg);
2921   if (check19(input)) return action19(action_arg);
2922   if (check20(input)) return action20(action_arg);
2923   if (check21(input)) return action21(action_arg);
2924   if (check22(input)) return action22(action_arg);
2925   if (check23(input)) return action23(action_arg);
2926   if (check24(input)) return action24(action_arg);
2927   if (check25(input)) return action25(action_arg);
2928   if (check26(input)) return action26(action_arg);
2929   if (check27(input)) return action27(action_arg);
2930   if (check28(input)) return action28(action_arg);
2931   if (check29(input)) return action29(action_arg);
2932   if (check30(input)) return action30(action_arg);
2933   if (check31(input)) return action31(action_arg);
2934   if (check32(input)) return action32(action_arg);
2935   if (check33(input)) return action33(action_arg);
2936   if (check34(input)) return action34(action_arg);
2937   if (check35(input)) return action35(action_arg);
2938   if (check36(input)) return action36(action_arg);
2939   if (check37(input)) return action37(action_arg);
2940   if (check38(input)) return action38(action_arg);
2941   if (check39(input)) return action39(action_arg);
2942   if (check40(input)) return action40(action_arg);
2943   if (check41(input)) return action41(action_arg);
2944   if (check42(input)) return action42(action_arg);
2945   if (check43(input)) return action43(action_arg);
2946   if (check44(input)) return action44(action_arg);
2947   if (check45(input)) return action45(action_arg);
2948   if (check46(input)) return action46(action_arg);
2949   if (check47(input)) return action47(action_arg);
2950   if (check48(input)) return action48(action_arg);
2951   if (check49(input)) return action49(action_arg);
2952   return action_fail(action_arg);
2953 }
2954 
2955 template <
2956     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2957     typename Check1, typename Check2, typename Check3, typename Check4,
2958     typename Check5, typename Check6, typename Check7, typename Check8,
2959     typename Check9, typename Check10, typename Check11, typename Check12,
2960     typename Check13, typename Check14, typename Check15, typename Check16,
2961     typename Check17, typename Check18, typename Check19, typename Check20,
2962     typename Check21, typename Check22, typename Check23, typename Check24,
2963     typename Check25, typename Check26, typename Check27, typename Check28,
2964     typename Check29, typename Check30, typename Check31, typename Check32,
2965     typename Check33, typename Check34, typename Check35, typename Check36,
2966     typename Check37, typename Check38, typename Check39, typename Check40,
2967     typename Check41, typename Check42, typename Check43, typename Check44,
2968     typename Check45, typename Check46, typename Check47, typename Check48,
2969     typename Check49, typename Check50, typename Action0, typename Action1,
2970     typename Action2, typename Action3, typename Action4, typename Action5,
2971     typename Action6, typename Action7, typename Action8, typename Action9,
2972     typename Action10, typename Action11, typename Action12, typename Action13,
2973     typename Action14, typename Action15, typename Action16, typename Action17,
2974     typename Action18, typename Action19, typename Action20, typename Action21,
2975     typename Action22, typename Action23, typename Action24, typename Action25,
2976     typename Action26, typename Action27, typename Action28, typename Action29,
2977     typename Action30, typename Action31, typename Action32, typename Action33,
2978     typename Action34, typename Action35, typename Action36, typename Action37,
2979     typename Action38, typename Action39, typename Action40, typename Action41,
2980     typename Action42, typename Action43, typename Action44, typename Action45,
2981     typename Action46, typename Action47, typename Action48, typename Action49,
2982     typename Action50>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Check46 check46,Check47 check47,Check48 check48,Check49 check49,Check50 check50,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45,Action46 action46,Action47 action47,Action48 action48,Action49 action49,Action50 action50)2983 auto IfList(
2984     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2985     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2986     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2987     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2988     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2989     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2990     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2991     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2992     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2993     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2994     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2995     Check43 check43, Check44 check44, Check45 check45, Check46 check46,
2996     Check47 check47, Check48 check48, Check49 check49, Check50 check50,
2997     Action0 action0, Action1 action1, Action2 action2, Action3 action3,
2998     Action4 action4, Action5 action5, Action6 action6, Action7 action7,
2999     Action8 action8, Action9 action9, Action10 action10, Action11 action11,
3000     Action12 action12, Action13 action13, Action14 action14, Action15 action15,
3001     Action16 action16, Action17 action17, Action18 action18, Action19 action19,
3002     Action20 action20, Action21 action21, Action22 action22, Action23 action23,
3003     Action24 action24, Action25 action25, Action26 action26, Action27 action27,
3004     Action28 action28, Action29 action29, Action30 action30, Action31 action31,
3005     Action32 action32, Action33 action33, Action34 action34, Action35 action35,
3006     Action36 action36, Action37 action37, Action38 action38, Action39 action39,
3007     Action40 action40, Action41 action41, Action42 action42, Action43 action43,
3008     Action44 action44, Action45 action45, Action46 action46, Action47 action47,
3009     Action48 action48, Action49 action49, Action50 action50) {
3010   if (check0(input)) return action0(action_arg);
3011   if (check1(input)) return action1(action_arg);
3012   if (check2(input)) return action2(action_arg);
3013   if (check3(input)) return action3(action_arg);
3014   if (check4(input)) return action4(action_arg);
3015   if (check5(input)) return action5(action_arg);
3016   if (check6(input)) return action6(action_arg);
3017   if (check7(input)) return action7(action_arg);
3018   if (check8(input)) return action8(action_arg);
3019   if (check9(input)) return action9(action_arg);
3020   if (check10(input)) return action10(action_arg);
3021   if (check11(input)) return action11(action_arg);
3022   if (check12(input)) return action12(action_arg);
3023   if (check13(input)) return action13(action_arg);
3024   if (check14(input)) return action14(action_arg);
3025   if (check15(input)) return action15(action_arg);
3026   if (check16(input)) return action16(action_arg);
3027   if (check17(input)) return action17(action_arg);
3028   if (check18(input)) return action18(action_arg);
3029   if (check19(input)) return action19(action_arg);
3030   if (check20(input)) return action20(action_arg);
3031   if (check21(input)) return action21(action_arg);
3032   if (check22(input)) return action22(action_arg);
3033   if (check23(input)) return action23(action_arg);
3034   if (check24(input)) return action24(action_arg);
3035   if (check25(input)) return action25(action_arg);
3036   if (check26(input)) return action26(action_arg);
3037   if (check27(input)) return action27(action_arg);
3038   if (check28(input)) return action28(action_arg);
3039   if (check29(input)) return action29(action_arg);
3040   if (check30(input)) return action30(action_arg);
3041   if (check31(input)) return action31(action_arg);
3042   if (check32(input)) return action32(action_arg);
3043   if (check33(input)) return action33(action_arg);
3044   if (check34(input)) return action34(action_arg);
3045   if (check35(input)) return action35(action_arg);
3046   if (check36(input)) return action36(action_arg);
3047   if (check37(input)) return action37(action_arg);
3048   if (check38(input)) return action38(action_arg);
3049   if (check39(input)) return action39(action_arg);
3050   if (check40(input)) return action40(action_arg);
3051   if (check41(input)) return action41(action_arg);
3052   if (check42(input)) return action42(action_arg);
3053   if (check43(input)) return action43(action_arg);
3054   if (check44(input)) return action44(action_arg);
3055   if (check45(input)) return action45(action_arg);
3056   if (check46(input)) return action46(action_arg);
3057   if (check47(input)) return action47(action_arg);
3058   if (check48(input)) return action48(action_arg);
3059   if (check49(input)) return action49(action_arg);
3060   if (check50(input)) return action50(action_arg);
3061   return action_fail(action_arg);
3062 }
3063 
3064 template <
3065     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3066     typename Check1, typename Check2, typename Check3, typename Check4,
3067     typename Check5, typename Check6, typename Check7, typename Check8,
3068     typename Check9, typename Check10, typename Check11, typename Check12,
3069     typename Check13, typename Check14, typename Check15, typename Check16,
3070     typename Check17, typename Check18, typename Check19, typename Check20,
3071     typename Check21, typename Check22, typename Check23, typename Check24,
3072     typename Check25, typename Check26, typename Check27, typename Check28,
3073     typename Check29, typename Check30, typename Check31, typename Check32,
3074     typename Check33, typename Check34, typename Check35, typename Check36,
3075     typename Check37, typename Check38, typename Check39, typename Check40,
3076     typename Check41, typename Check42, typename Check43, typename Check44,
3077     typename Check45, typename Check46, typename Check47, typename Check48,
3078     typename Check49, typename Check50, typename Check51, typename Action0,
3079     typename Action1, typename Action2, typename Action3, typename Action4,
3080     typename Action5, typename Action6, typename Action7, typename Action8,
3081     typename Action9, typename Action10, typename Action11, typename Action12,
3082     typename Action13, typename Action14, typename Action15, typename Action16,
3083     typename Action17, typename Action18, typename Action19, typename Action20,
3084     typename Action21, typename Action22, typename Action23, typename Action24,
3085     typename Action25, typename Action26, typename Action27, typename Action28,
3086     typename Action29, typename Action30, typename Action31, typename Action32,
3087     typename Action33, typename Action34, typename Action35, typename Action36,
3088     typename Action37, typename Action38, typename Action39, typename Action40,
3089     typename Action41, typename Action42, typename Action43, typename Action44,
3090     typename Action45, typename Action46, typename Action47, typename Action48,
3091     typename Action49, typename Action50, typename Action51>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Check46 check46,Check47 check47,Check48 check48,Check49 check49,Check50 check50,Check51 check51,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45,Action46 action46,Action47 action47,Action48 action48,Action49 action49,Action50 action50,Action51 action51)3092 auto IfList(
3093     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3094     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3095     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3096     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3097     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3098     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3099     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3100     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3101     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3102     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3103     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3104     Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3105     Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3106     Check51 check51, Action0 action0, Action1 action1, Action2 action2,
3107     Action3 action3, Action4 action4, Action5 action5, Action6 action6,
3108     Action7 action7, Action8 action8, Action9 action9, Action10 action10,
3109     Action11 action11, Action12 action12, Action13 action13, Action14 action14,
3110     Action15 action15, Action16 action16, Action17 action17, Action18 action18,
3111     Action19 action19, Action20 action20, Action21 action21, Action22 action22,
3112     Action23 action23, Action24 action24, Action25 action25, Action26 action26,
3113     Action27 action27, Action28 action28, Action29 action29, Action30 action30,
3114     Action31 action31, Action32 action32, Action33 action33, Action34 action34,
3115     Action35 action35, Action36 action36, Action37 action37, Action38 action38,
3116     Action39 action39, Action40 action40, Action41 action41, Action42 action42,
3117     Action43 action43, Action44 action44, Action45 action45, Action46 action46,
3118     Action47 action47, Action48 action48, Action49 action49, Action50 action50,
3119     Action51 action51) {
3120   if (check0(input)) return action0(action_arg);
3121   if (check1(input)) return action1(action_arg);
3122   if (check2(input)) return action2(action_arg);
3123   if (check3(input)) return action3(action_arg);
3124   if (check4(input)) return action4(action_arg);
3125   if (check5(input)) return action5(action_arg);
3126   if (check6(input)) return action6(action_arg);
3127   if (check7(input)) return action7(action_arg);
3128   if (check8(input)) return action8(action_arg);
3129   if (check9(input)) return action9(action_arg);
3130   if (check10(input)) return action10(action_arg);
3131   if (check11(input)) return action11(action_arg);
3132   if (check12(input)) return action12(action_arg);
3133   if (check13(input)) return action13(action_arg);
3134   if (check14(input)) return action14(action_arg);
3135   if (check15(input)) return action15(action_arg);
3136   if (check16(input)) return action16(action_arg);
3137   if (check17(input)) return action17(action_arg);
3138   if (check18(input)) return action18(action_arg);
3139   if (check19(input)) return action19(action_arg);
3140   if (check20(input)) return action20(action_arg);
3141   if (check21(input)) return action21(action_arg);
3142   if (check22(input)) return action22(action_arg);
3143   if (check23(input)) return action23(action_arg);
3144   if (check24(input)) return action24(action_arg);
3145   if (check25(input)) return action25(action_arg);
3146   if (check26(input)) return action26(action_arg);
3147   if (check27(input)) return action27(action_arg);
3148   if (check28(input)) return action28(action_arg);
3149   if (check29(input)) return action29(action_arg);
3150   if (check30(input)) return action30(action_arg);
3151   if (check31(input)) return action31(action_arg);
3152   if (check32(input)) return action32(action_arg);
3153   if (check33(input)) return action33(action_arg);
3154   if (check34(input)) return action34(action_arg);
3155   if (check35(input)) return action35(action_arg);
3156   if (check36(input)) return action36(action_arg);
3157   if (check37(input)) return action37(action_arg);
3158   if (check38(input)) return action38(action_arg);
3159   if (check39(input)) return action39(action_arg);
3160   if (check40(input)) return action40(action_arg);
3161   if (check41(input)) return action41(action_arg);
3162   if (check42(input)) return action42(action_arg);
3163   if (check43(input)) return action43(action_arg);
3164   if (check44(input)) return action44(action_arg);
3165   if (check45(input)) return action45(action_arg);
3166   if (check46(input)) return action46(action_arg);
3167   if (check47(input)) return action47(action_arg);
3168   if (check48(input)) return action48(action_arg);
3169   if (check49(input)) return action49(action_arg);
3170   if (check50(input)) return action50(action_arg);
3171   if (check51(input)) return action51(action_arg);
3172   return action_fail(action_arg);
3173 }
3174 
3175 template <
3176     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3177     typename Check1, typename Check2, typename Check3, typename Check4,
3178     typename Check5, typename Check6, typename Check7, typename Check8,
3179     typename Check9, typename Check10, typename Check11, typename Check12,
3180     typename Check13, typename Check14, typename Check15, typename Check16,
3181     typename Check17, typename Check18, typename Check19, typename Check20,
3182     typename Check21, typename Check22, typename Check23, typename Check24,
3183     typename Check25, typename Check26, typename Check27, typename Check28,
3184     typename Check29, typename Check30, typename Check31, typename Check32,
3185     typename Check33, typename Check34, typename Check35, typename Check36,
3186     typename Check37, typename Check38, typename Check39, typename Check40,
3187     typename Check41, typename Check42, typename Check43, typename Check44,
3188     typename Check45, typename Check46, typename Check47, typename Check48,
3189     typename Check49, typename Check50, typename Check51, typename Check52,
3190     typename Action0, typename Action1, typename Action2, typename Action3,
3191     typename Action4, typename Action5, typename Action6, typename Action7,
3192     typename Action8, typename Action9, typename Action10, typename Action11,
3193     typename Action12, typename Action13, typename Action14, typename Action15,
3194     typename Action16, typename Action17, typename Action18, typename Action19,
3195     typename Action20, typename Action21, typename Action22, typename Action23,
3196     typename Action24, typename Action25, typename Action26, typename Action27,
3197     typename Action28, typename Action29, typename Action30, typename Action31,
3198     typename Action32, typename Action33, typename Action34, typename Action35,
3199     typename Action36, typename Action37, typename Action38, typename Action39,
3200     typename Action40, typename Action41, typename Action42, typename Action43,
3201     typename Action44, typename Action45, typename Action46, typename Action47,
3202     typename Action48, typename Action49, typename Action50, typename Action51,
3203     typename Action52>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Check46 check46,Check47 check47,Check48 check48,Check49 check49,Check50 check50,Check51 check51,Check52 check52,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45,Action46 action46,Action47 action47,Action48 action48,Action49 action49,Action50 action50,Action51 action51,Action52 action52)3204 auto IfList(
3205     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3206     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3207     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3208     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3209     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3210     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3211     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3212     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3213     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3214     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3215     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3216     Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3217     Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3218     Check51 check51, Check52 check52, Action0 action0, Action1 action1,
3219     Action2 action2, Action3 action3, Action4 action4, Action5 action5,
3220     Action6 action6, Action7 action7, Action8 action8, Action9 action9,
3221     Action10 action10, Action11 action11, Action12 action12, Action13 action13,
3222     Action14 action14, Action15 action15, Action16 action16, Action17 action17,
3223     Action18 action18, Action19 action19, Action20 action20, Action21 action21,
3224     Action22 action22, Action23 action23, Action24 action24, Action25 action25,
3225     Action26 action26, Action27 action27, Action28 action28, Action29 action29,
3226     Action30 action30, Action31 action31, Action32 action32, Action33 action33,
3227     Action34 action34, Action35 action35, Action36 action36, Action37 action37,
3228     Action38 action38, Action39 action39, Action40 action40, Action41 action41,
3229     Action42 action42, Action43 action43, Action44 action44, Action45 action45,
3230     Action46 action46, Action47 action47, Action48 action48, Action49 action49,
3231     Action50 action50, Action51 action51, Action52 action52) {
3232   if (check0(input)) return action0(action_arg);
3233   if (check1(input)) return action1(action_arg);
3234   if (check2(input)) return action2(action_arg);
3235   if (check3(input)) return action3(action_arg);
3236   if (check4(input)) return action4(action_arg);
3237   if (check5(input)) return action5(action_arg);
3238   if (check6(input)) return action6(action_arg);
3239   if (check7(input)) return action7(action_arg);
3240   if (check8(input)) return action8(action_arg);
3241   if (check9(input)) return action9(action_arg);
3242   if (check10(input)) return action10(action_arg);
3243   if (check11(input)) return action11(action_arg);
3244   if (check12(input)) return action12(action_arg);
3245   if (check13(input)) return action13(action_arg);
3246   if (check14(input)) return action14(action_arg);
3247   if (check15(input)) return action15(action_arg);
3248   if (check16(input)) return action16(action_arg);
3249   if (check17(input)) return action17(action_arg);
3250   if (check18(input)) return action18(action_arg);
3251   if (check19(input)) return action19(action_arg);
3252   if (check20(input)) return action20(action_arg);
3253   if (check21(input)) return action21(action_arg);
3254   if (check22(input)) return action22(action_arg);
3255   if (check23(input)) return action23(action_arg);
3256   if (check24(input)) return action24(action_arg);
3257   if (check25(input)) return action25(action_arg);
3258   if (check26(input)) return action26(action_arg);
3259   if (check27(input)) return action27(action_arg);
3260   if (check28(input)) return action28(action_arg);
3261   if (check29(input)) return action29(action_arg);
3262   if (check30(input)) return action30(action_arg);
3263   if (check31(input)) return action31(action_arg);
3264   if (check32(input)) return action32(action_arg);
3265   if (check33(input)) return action33(action_arg);
3266   if (check34(input)) return action34(action_arg);
3267   if (check35(input)) return action35(action_arg);
3268   if (check36(input)) return action36(action_arg);
3269   if (check37(input)) return action37(action_arg);
3270   if (check38(input)) return action38(action_arg);
3271   if (check39(input)) return action39(action_arg);
3272   if (check40(input)) return action40(action_arg);
3273   if (check41(input)) return action41(action_arg);
3274   if (check42(input)) return action42(action_arg);
3275   if (check43(input)) return action43(action_arg);
3276   if (check44(input)) return action44(action_arg);
3277   if (check45(input)) return action45(action_arg);
3278   if (check46(input)) return action46(action_arg);
3279   if (check47(input)) return action47(action_arg);
3280   if (check48(input)) return action48(action_arg);
3281   if (check49(input)) return action49(action_arg);
3282   if (check50(input)) return action50(action_arg);
3283   if (check51(input)) return action51(action_arg);
3284   if (check52(input)) return action52(action_arg);
3285   return action_fail(action_arg);
3286 }
3287 
3288 template <
3289     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3290     typename Check1, typename Check2, typename Check3, typename Check4,
3291     typename Check5, typename Check6, typename Check7, typename Check8,
3292     typename Check9, typename Check10, typename Check11, typename Check12,
3293     typename Check13, typename Check14, typename Check15, typename Check16,
3294     typename Check17, typename Check18, typename Check19, typename Check20,
3295     typename Check21, typename Check22, typename Check23, typename Check24,
3296     typename Check25, typename Check26, typename Check27, typename Check28,
3297     typename Check29, typename Check30, typename Check31, typename Check32,
3298     typename Check33, typename Check34, typename Check35, typename Check36,
3299     typename Check37, typename Check38, typename Check39, typename Check40,
3300     typename Check41, typename Check42, typename Check43, typename Check44,
3301     typename Check45, typename Check46, typename Check47, typename Check48,
3302     typename Check49, typename Check50, typename Check51, typename Check52,
3303     typename Check53, typename Action0, typename Action1, typename Action2,
3304     typename Action3, typename Action4, typename Action5, typename Action6,
3305     typename Action7, typename Action8, typename Action9, typename Action10,
3306     typename Action11, typename Action12, typename Action13, typename Action14,
3307     typename Action15, typename Action16, typename Action17, typename Action18,
3308     typename Action19, typename Action20, typename Action21, typename Action22,
3309     typename Action23, typename Action24, typename Action25, typename Action26,
3310     typename Action27, typename Action28, typename Action29, typename Action30,
3311     typename Action31, typename Action32, typename Action33, typename Action34,
3312     typename Action35, typename Action36, typename Action37, typename Action38,
3313     typename Action39, typename Action40, typename Action41, typename Action42,
3314     typename Action43, typename Action44, typename Action45, typename Action46,
3315     typename Action47, typename Action48, typename Action49, typename Action50,
3316     typename Action51, typename Action52, typename Action53>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Check46 check46,Check47 check47,Check48 check48,Check49 check49,Check50 check50,Check51 check51,Check52 check52,Check53 check53,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45,Action46 action46,Action47 action47,Action48 action48,Action49 action49,Action50 action50,Action51 action51,Action52 action52,Action53 action53)3317 auto IfList(
3318     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3319     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3320     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3321     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3322     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3323     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3324     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3325     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3326     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3327     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3328     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3329     Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3330     Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3331     Check51 check51, Check52 check52, Check53 check53, Action0 action0,
3332     Action1 action1, Action2 action2, Action3 action3, Action4 action4,
3333     Action5 action5, Action6 action6, Action7 action7, Action8 action8,
3334     Action9 action9, Action10 action10, Action11 action11, Action12 action12,
3335     Action13 action13, Action14 action14, Action15 action15, Action16 action16,
3336     Action17 action17, Action18 action18, Action19 action19, Action20 action20,
3337     Action21 action21, Action22 action22, Action23 action23, Action24 action24,
3338     Action25 action25, Action26 action26, Action27 action27, Action28 action28,
3339     Action29 action29, Action30 action30, Action31 action31, Action32 action32,
3340     Action33 action33, Action34 action34, Action35 action35, Action36 action36,
3341     Action37 action37, Action38 action38, Action39 action39, Action40 action40,
3342     Action41 action41, Action42 action42, Action43 action43, Action44 action44,
3343     Action45 action45, Action46 action46, Action47 action47, Action48 action48,
3344     Action49 action49, Action50 action50, Action51 action51, Action52 action52,
3345     Action53 action53) {
3346   if (check0(input)) return action0(action_arg);
3347   if (check1(input)) return action1(action_arg);
3348   if (check2(input)) return action2(action_arg);
3349   if (check3(input)) return action3(action_arg);
3350   if (check4(input)) return action4(action_arg);
3351   if (check5(input)) return action5(action_arg);
3352   if (check6(input)) return action6(action_arg);
3353   if (check7(input)) return action7(action_arg);
3354   if (check8(input)) return action8(action_arg);
3355   if (check9(input)) return action9(action_arg);
3356   if (check10(input)) return action10(action_arg);
3357   if (check11(input)) return action11(action_arg);
3358   if (check12(input)) return action12(action_arg);
3359   if (check13(input)) return action13(action_arg);
3360   if (check14(input)) return action14(action_arg);
3361   if (check15(input)) return action15(action_arg);
3362   if (check16(input)) return action16(action_arg);
3363   if (check17(input)) return action17(action_arg);
3364   if (check18(input)) return action18(action_arg);
3365   if (check19(input)) return action19(action_arg);
3366   if (check20(input)) return action20(action_arg);
3367   if (check21(input)) return action21(action_arg);
3368   if (check22(input)) return action22(action_arg);
3369   if (check23(input)) return action23(action_arg);
3370   if (check24(input)) return action24(action_arg);
3371   if (check25(input)) return action25(action_arg);
3372   if (check26(input)) return action26(action_arg);
3373   if (check27(input)) return action27(action_arg);
3374   if (check28(input)) return action28(action_arg);
3375   if (check29(input)) return action29(action_arg);
3376   if (check30(input)) return action30(action_arg);
3377   if (check31(input)) return action31(action_arg);
3378   if (check32(input)) return action32(action_arg);
3379   if (check33(input)) return action33(action_arg);
3380   if (check34(input)) return action34(action_arg);
3381   if (check35(input)) return action35(action_arg);
3382   if (check36(input)) return action36(action_arg);
3383   if (check37(input)) return action37(action_arg);
3384   if (check38(input)) return action38(action_arg);
3385   if (check39(input)) return action39(action_arg);
3386   if (check40(input)) return action40(action_arg);
3387   if (check41(input)) return action41(action_arg);
3388   if (check42(input)) return action42(action_arg);
3389   if (check43(input)) return action43(action_arg);
3390   if (check44(input)) return action44(action_arg);
3391   if (check45(input)) return action45(action_arg);
3392   if (check46(input)) return action46(action_arg);
3393   if (check47(input)) return action47(action_arg);
3394   if (check48(input)) return action48(action_arg);
3395   if (check49(input)) return action49(action_arg);
3396   if (check50(input)) return action50(action_arg);
3397   if (check51(input)) return action51(action_arg);
3398   if (check52(input)) return action52(action_arg);
3399   if (check53(input)) return action53(action_arg);
3400   return action_fail(action_arg);
3401 }
3402 
3403 template <
3404     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3405     typename Check1, typename Check2, typename Check3, typename Check4,
3406     typename Check5, typename Check6, typename Check7, typename Check8,
3407     typename Check9, typename Check10, typename Check11, typename Check12,
3408     typename Check13, typename Check14, typename Check15, typename Check16,
3409     typename Check17, typename Check18, typename Check19, typename Check20,
3410     typename Check21, typename Check22, typename Check23, typename Check24,
3411     typename Check25, typename Check26, typename Check27, typename Check28,
3412     typename Check29, typename Check30, typename Check31, typename Check32,
3413     typename Check33, typename Check34, typename Check35, typename Check36,
3414     typename Check37, typename Check38, typename Check39, typename Check40,
3415     typename Check41, typename Check42, typename Check43, typename Check44,
3416     typename Check45, typename Check46, typename Check47, typename Check48,
3417     typename Check49, typename Check50, typename Check51, typename Check52,
3418     typename Check53, typename Check54, typename Action0, typename Action1,
3419     typename Action2, typename Action3, typename Action4, typename Action5,
3420     typename Action6, typename Action7, typename Action8, typename Action9,
3421     typename Action10, typename Action11, typename Action12, typename Action13,
3422     typename Action14, typename Action15, typename Action16, typename Action17,
3423     typename Action18, typename Action19, typename Action20, typename Action21,
3424     typename Action22, typename Action23, typename Action24, typename Action25,
3425     typename Action26, typename Action27, typename Action28, typename Action29,
3426     typename Action30, typename Action31, typename Action32, typename Action33,
3427     typename Action34, typename Action35, typename Action36, typename Action37,
3428     typename Action38, typename Action39, typename Action40, typename Action41,
3429     typename Action42, typename Action43, typename Action44, typename Action45,
3430     typename Action46, typename Action47, typename Action48, typename Action49,
3431     typename Action50, typename Action51, typename Action52, typename Action53,
3432     typename Action54>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Check46 check46,Check47 check47,Check48 check48,Check49 check49,Check50 check50,Check51 check51,Check52 check52,Check53 check53,Check54 check54,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45,Action46 action46,Action47 action47,Action48 action48,Action49 action49,Action50 action50,Action51 action51,Action52 action52,Action53 action53,Action54 action54)3433 auto IfList(
3434     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3435     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3436     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3437     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3438     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3439     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3440     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3441     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3442     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3443     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3444     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3445     Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3446     Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3447     Check51 check51, Check52 check52, Check53 check53, Check54 check54,
3448     Action0 action0, Action1 action1, Action2 action2, Action3 action3,
3449     Action4 action4, Action5 action5, Action6 action6, Action7 action7,
3450     Action8 action8, Action9 action9, Action10 action10, Action11 action11,
3451     Action12 action12, Action13 action13, Action14 action14, Action15 action15,
3452     Action16 action16, Action17 action17, Action18 action18, Action19 action19,
3453     Action20 action20, Action21 action21, Action22 action22, Action23 action23,
3454     Action24 action24, Action25 action25, Action26 action26, Action27 action27,
3455     Action28 action28, Action29 action29, Action30 action30, Action31 action31,
3456     Action32 action32, Action33 action33, Action34 action34, Action35 action35,
3457     Action36 action36, Action37 action37, Action38 action38, Action39 action39,
3458     Action40 action40, Action41 action41, Action42 action42, Action43 action43,
3459     Action44 action44, Action45 action45, Action46 action46, Action47 action47,
3460     Action48 action48, Action49 action49, Action50 action50, Action51 action51,
3461     Action52 action52, Action53 action53, Action54 action54) {
3462   if (check0(input)) return action0(action_arg);
3463   if (check1(input)) return action1(action_arg);
3464   if (check2(input)) return action2(action_arg);
3465   if (check3(input)) return action3(action_arg);
3466   if (check4(input)) return action4(action_arg);
3467   if (check5(input)) return action5(action_arg);
3468   if (check6(input)) return action6(action_arg);
3469   if (check7(input)) return action7(action_arg);
3470   if (check8(input)) return action8(action_arg);
3471   if (check9(input)) return action9(action_arg);
3472   if (check10(input)) return action10(action_arg);
3473   if (check11(input)) return action11(action_arg);
3474   if (check12(input)) return action12(action_arg);
3475   if (check13(input)) return action13(action_arg);
3476   if (check14(input)) return action14(action_arg);
3477   if (check15(input)) return action15(action_arg);
3478   if (check16(input)) return action16(action_arg);
3479   if (check17(input)) return action17(action_arg);
3480   if (check18(input)) return action18(action_arg);
3481   if (check19(input)) return action19(action_arg);
3482   if (check20(input)) return action20(action_arg);
3483   if (check21(input)) return action21(action_arg);
3484   if (check22(input)) return action22(action_arg);
3485   if (check23(input)) return action23(action_arg);
3486   if (check24(input)) return action24(action_arg);
3487   if (check25(input)) return action25(action_arg);
3488   if (check26(input)) return action26(action_arg);
3489   if (check27(input)) return action27(action_arg);
3490   if (check28(input)) return action28(action_arg);
3491   if (check29(input)) return action29(action_arg);
3492   if (check30(input)) return action30(action_arg);
3493   if (check31(input)) return action31(action_arg);
3494   if (check32(input)) return action32(action_arg);
3495   if (check33(input)) return action33(action_arg);
3496   if (check34(input)) return action34(action_arg);
3497   if (check35(input)) return action35(action_arg);
3498   if (check36(input)) return action36(action_arg);
3499   if (check37(input)) return action37(action_arg);
3500   if (check38(input)) return action38(action_arg);
3501   if (check39(input)) return action39(action_arg);
3502   if (check40(input)) return action40(action_arg);
3503   if (check41(input)) return action41(action_arg);
3504   if (check42(input)) return action42(action_arg);
3505   if (check43(input)) return action43(action_arg);
3506   if (check44(input)) return action44(action_arg);
3507   if (check45(input)) return action45(action_arg);
3508   if (check46(input)) return action46(action_arg);
3509   if (check47(input)) return action47(action_arg);
3510   if (check48(input)) return action48(action_arg);
3511   if (check49(input)) return action49(action_arg);
3512   if (check50(input)) return action50(action_arg);
3513   if (check51(input)) return action51(action_arg);
3514   if (check52(input)) return action52(action_arg);
3515   if (check53(input)) return action53(action_arg);
3516   if (check54(input)) return action54(action_arg);
3517   return action_fail(action_arg);
3518 }
3519 
3520 template <
3521     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3522     typename Check1, typename Check2, typename Check3, typename Check4,
3523     typename Check5, typename Check6, typename Check7, typename Check8,
3524     typename Check9, typename Check10, typename Check11, typename Check12,
3525     typename Check13, typename Check14, typename Check15, typename Check16,
3526     typename Check17, typename Check18, typename Check19, typename Check20,
3527     typename Check21, typename Check22, typename Check23, typename Check24,
3528     typename Check25, typename Check26, typename Check27, typename Check28,
3529     typename Check29, typename Check30, typename Check31, typename Check32,
3530     typename Check33, typename Check34, typename Check35, typename Check36,
3531     typename Check37, typename Check38, typename Check39, typename Check40,
3532     typename Check41, typename Check42, typename Check43, typename Check44,
3533     typename Check45, typename Check46, typename Check47, typename Check48,
3534     typename Check49, typename Check50, typename Check51, typename Check52,
3535     typename Check53, typename Check54, typename Check55, typename Action0,
3536     typename Action1, typename Action2, typename Action3, typename Action4,
3537     typename Action5, typename Action6, typename Action7, typename Action8,
3538     typename Action9, typename Action10, typename Action11, typename Action12,
3539     typename Action13, typename Action14, typename Action15, typename Action16,
3540     typename Action17, typename Action18, typename Action19, typename Action20,
3541     typename Action21, typename Action22, typename Action23, typename Action24,
3542     typename Action25, typename Action26, typename Action27, typename Action28,
3543     typename Action29, typename Action30, typename Action31, typename Action32,
3544     typename Action33, typename Action34, typename Action35, typename Action36,
3545     typename Action37, typename Action38, typename Action39, typename Action40,
3546     typename Action41, typename Action42, typename Action43, typename Action44,
3547     typename Action45, typename Action46, typename Action47, typename Action48,
3548     typename Action49, typename Action50, typename Action51, typename Action52,
3549     typename Action53, typename Action54, typename Action55>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Check46 check46,Check47 check47,Check48 check48,Check49 check49,Check50 check50,Check51 check51,Check52 check52,Check53 check53,Check54 check54,Check55 check55,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45,Action46 action46,Action47 action47,Action48 action48,Action49 action49,Action50 action50,Action51 action51,Action52 action52,Action53 action53,Action54 action54,Action55 action55)3550 auto IfList(
3551     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3552     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3553     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3554     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3555     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3556     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3557     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3558     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3559     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3560     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3561     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3562     Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3563     Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3564     Check51 check51, Check52 check52, Check53 check53, Check54 check54,
3565     Check55 check55, Action0 action0, Action1 action1, Action2 action2,
3566     Action3 action3, Action4 action4, Action5 action5, Action6 action6,
3567     Action7 action7, Action8 action8, Action9 action9, Action10 action10,
3568     Action11 action11, Action12 action12, Action13 action13, Action14 action14,
3569     Action15 action15, Action16 action16, Action17 action17, Action18 action18,
3570     Action19 action19, Action20 action20, Action21 action21, Action22 action22,
3571     Action23 action23, Action24 action24, Action25 action25, Action26 action26,
3572     Action27 action27, Action28 action28, Action29 action29, Action30 action30,
3573     Action31 action31, Action32 action32, Action33 action33, Action34 action34,
3574     Action35 action35, Action36 action36, Action37 action37, Action38 action38,
3575     Action39 action39, Action40 action40, Action41 action41, Action42 action42,
3576     Action43 action43, Action44 action44, Action45 action45, Action46 action46,
3577     Action47 action47, Action48 action48, Action49 action49, Action50 action50,
3578     Action51 action51, Action52 action52, Action53 action53, Action54 action54,
3579     Action55 action55) {
3580   if (check0(input)) return action0(action_arg);
3581   if (check1(input)) return action1(action_arg);
3582   if (check2(input)) return action2(action_arg);
3583   if (check3(input)) return action3(action_arg);
3584   if (check4(input)) return action4(action_arg);
3585   if (check5(input)) return action5(action_arg);
3586   if (check6(input)) return action6(action_arg);
3587   if (check7(input)) return action7(action_arg);
3588   if (check8(input)) return action8(action_arg);
3589   if (check9(input)) return action9(action_arg);
3590   if (check10(input)) return action10(action_arg);
3591   if (check11(input)) return action11(action_arg);
3592   if (check12(input)) return action12(action_arg);
3593   if (check13(input)) return action13(action_arg);
3594   if (check14(input)) return action14(action_arg);
3595   if (check15(input)) return action15(action_arg);
3596   if (check16(input)) return action16(action_arg);
3597   if (check17(input)) return action17(action_arg);
3598   if (check18(input)) return action18(action_arg);
3599   if (check19(input)) return action19(action_arg);
3600   if (check20(input)) return action20(action_arg);
3601   if (check21(input)) return action21(action_arg);
3602   if (check22(input)) return action22(action_arg);
3603   if (check23(input)) return action23(action_arg);
3604   if (check24(input)) return action24(action_arg);
3605   if (check25(input)) return action25(action_arg);
3606   if (check26(input)) return action26(action_arg);
3607   if (check27(input)) return action27(action_arg);
3608   if (check28(input)) return action28(action_arg);
3609   if (check29(input)) return action29(action_arg);
3610   if (check30(input)) return action30(action_arg);
3611   if (check31(input)) return action31(action_arg);
3612   if (check32(input)) return action32(action_arg);
3613   if (check33(input)) return action33(action_arg);
3614   if (check34(input)) return action34(action_arg);
3615   if (check35(input)) return action35(action_arg);
3616   if (check36(input)) return action36(action_arg);
3617   if (check37(input)) return action37(action_arg);
3618   if (check38(input)) return action38(action_arg);
3619   if (check39(input)) return action39(action_arg);
3620   if (check40(input)) return action40(action_arg);
3621   if (check41(input)) return action41(action_arg);
3622   if (check42(input)) return action42(action_arg);
3623   if (check43(input)) return action43(action_arg);
3624   if (check44(input)) return action44(action_arg);
3625   if (check45(input)) return action45(action_arg);
3626   if (check46(input)) return action46(action_arg);
3627   if (check47(input)) return action47(action_arg);
3628   if (check48(input)) return action48(action_arg);
3629   if (check49(input)) return action49(action_arg);
3630   if (check50(input)) return action50(action_arg);
3631   if (check51(input)) return action51(action_arg);
3632   if (check52(input)) return action52(action_arg);
3633   if (check53(input)) return action53(action_arg);
3634   if (check54(input)) return action54(action_arg);
3635   if (check55(input)) return action55(action_arg);
3636   return action_fail(action_arg);
3637 }
3638 
3639 template <
3640     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3641     typename Check1, typename Check2, typename Check3, typename Check4,
3642     typename Check5, typename Check6, typename Check7, typename Check8,
3643     typename Check9, typename Check10, typename Check11, typename Check12,
3644     typename Check13, typename Check14, typename Check15, typename Check16,
3645     typename Check17, typename Check18, typename Check19, typename Check20,
3646     typename Check21, typename Check22, typename Check23, typename Check24,
3647     typename Check25, typename Check26, typename Check27, typename Check28,
3648     typename Check29, typename Check30, typename Check31, typename Check32,
3649     typename Check33, typename Check34, typename Check35, typename Check36,
3650     typename Check37, typename Check38, typename Check39, typename Check40,
3651     typename Check41, typename Check42, typename Check43, typename Check44,
3652     typename Check45, typename Check46, typename Check47, typename Check48,
3653     typename Check49, typename Check50, typename Check51, typename Check52,
3654     typename Check53, typename Check54, typename Check55, typename Check56,
3655     typename Action0, typename Action1, typename Action2, typename Action3,
3656     typename Action4, typename Action5, typename Action6, typename Action7,
3657     typename Action8, typename Action9, typename Action10, typename Action11,
3658     typename Action12, typename Action13, typename Action14, typename Action15,
3659     typename Action16, typename Action17, typename Action18, typename Action19,
3660     typename Action20, typename Action21, typename Action22, typename Action23,
3661     typename Action24, typename Action25, typename Action26, typename Action27,
3662     typename Action28, typename Action29, typename Action30, typename Action31,
3663     typename Action32, typename Action33, typename Action34, typename Action35,
3664     typename Action36, typename Action37, typename Action38, typename Action39,
3665     typename Action40, typename Action41, typename Action42, typename Action43,
3666     typename Action44, typename Action45, typename Action46, typename Action47,
3667     typename Action48, typename Action49, typename Action50, typename Action51,
3668     typename Action52, typename Action53, typename Action54, typename Action55,
3669     typename Action56>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Check46 check46,Check47 check47,Check48 check48,Check49 check49,Check50 check50,Check51 check51,Check52 check52,Check53 check53,Check54 check54,Check55 check55,Check56 check56,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45,Action46 action46,Action47 action47,Action48 action48,Action49 action49,Action50 action50,Action51 action51,Action52 action52,Action53 action53,Action54 action54,Action55 action55,Action56 action56)3670 auto IfList(
3671     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3672     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3673     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3674     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3675     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3676     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3677     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3678     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3679     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3680     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3681     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3682     Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3683     Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3684     Check51 check51, Check52 check52, Check53 check53, Check54 check54,
3685     Check55 check55, Check56 check56, Action0 action0, Action1 action1,
3686     Action2 action2, Action3 action3, Action4 action4, Action5 action5,
3687     Action6 action6, Action7 action7, Action8 action8, Action9 action9,
3688     Action10 action10, Action11 action11, Action12 action12, Action13 action13,
3689     Action14 action14, Action15 action15, Action16 action16, Action17 action17,
3690     Action18 action18, Action19 action19, Action20 action20, Action21 action21,
3691     Action22 action22, Action23 action23, Action24 action24, Action25 action25,
3692     Action26 action26, Action27 action27, Action28 action28, Action29 action29,
3693     Action30 action30, Action31 action31, Action32 action32, Action33 action33,
3694     Action34 action34, Action35 action35, Action36 action36, Action37 action37,
3695     Action38 action38, Action39 action39, Action40 action40, Action41 action41,
3696     Action42 action42, Action43 action43, Action44 action44, Action45 action45,
3697     Action46 action46, Action47 action47, Action48 action48, Action49 action49,
3698     Action50 action50, Action51 action51, Action52 action52, Action53 action53,
3699     Action54 action54, Action55 action55, Action56 action56) {
3700   if (check0(input)) return action0(action_arg);
3701   if (check1(input)) return action1(action_arg);
3702   if (check2(input)) return action2(action_arg);
3703   if (check3(input)) return action3(action_arg);
3704   if (check4(input)) return action4(action_arg);
3705   if (check5(input)) return action5(action_arg);
3706   if (check6(input)) return action6(action_arg);
3707   if (check7(input)) return action7(action_arg);
3708   if (check8(input)) return action8(action_arg);
3709   if (check9(input)) return action9(action_arg);
3710   if (check10(input)) return action10(action_arg);
3711   if (check11(input)) return action11(action_arg);
3712   if (check12(input)) return action12(action_arg);
3713   if (check13(input)) return action13(action_arg);
3714   if (check14(input)) return action14(action_arg);
3715   if (check15(input)) return action15(action_arg);
3716   if (check16(input)) return action16(action_arg);
3717   if (check17(input)) return action17(action_arg);
3718   if (check18(input)) return action18(action_arg);
3719   if (check19(input)) return action19(action_arg);
3720   if (check20(input)) return action20(action_arg);
3721   if (check21(input)) return action21(action_arg);
3722   if (check22(input)) return action22(action_arg);
3723   if (check23(input)) return action23(action_arg);
3724   if (check24(input)) return action24(action_arg);
3725   if (check25(input)) return action25(action_arg);
3726   if (check26(input)) return action26(action_arg);
3727   if (check27(input)) return action27(action_arg);
3728   if (check28(input)) return action28(action_arg);
3729   if (check29(input)) return action29(action_arg);
3730   if (check30(input)) return action30(action_arg);
3731   if (check31(input)) return action31(action_arg);
3732   if (check32(input)) return action32(action_arg);
3733   if (check33(input)) return action33(action_arg);
3734   if (check34(input)) return action34(action_arg);
3735   if (check35(input)) return action35(action_arg);
3736   if (check36(input)) return action36(action_arg);
3737   if (check37(input)) return action37(action_arg);
3738   if (check38(input)) return action38(action_arg);
3739   if (check39(input)) return action39(action_arg);
3740   if (check40(input)) return action40(action_arg);
3741   if (check41(input)) return action41(action_arg);
3742   if (check42(input)) return action42(action_arg);
3743   if (check43(input)) return action43(action_arg);
3744   if (check44(input)) return action44(action_arg);
3745   if (check45(input)) return action45(action_arg);
3746   if (check46(input)) return action46(action_arg);
3747   if (check47(input)) return action47(action_arg);
3748   if (check48(input)) return action48(action_arg);
3749   if (check49(input)) return action49(action_arg);
3750   if (check50(input)) return action50(action_arg);
3751   if (check51(input)) return action51(action_arg);
3752   if (check52(input)) return action52(action_arg);
3753   if (check53(input)) return action53(action_arg);
3754   if (check54(input)) return action54(action_arg);
3755   if (check55(input)) return action55(action_arg);
3756   if (check56(input)) return action56(action_arg);
3757   return action_fail(action_arg);
3758 }
3759 
3760 template <
3761     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3762     typename Check1, typename Check2, typename Check3, typename Check4,
3763     typename Check5, typename Check6, typename Check7, typename Check8,
3764     typename Check9, typename Check10, typename Check11, typename Check12,
3765     typename Check13, typename Check14, typename Check15, typename Check16,
3766     typename Check17, typename Check18, typename Check19, typename Check20,
3767     typename Check21, typename Check22, typename Check23, typename Check24,
3768     typename Check25, typename Check26, typename Check27, typename Check28,
3769     typename Check29, typename Check30, typename Check31, typename Check32,
3770     typename Check33, typename Check34, typename Check35, typename Check36,
3771     typename Check37, typename Check38, typename Check39, typename Check40,
3772     typename Check41, typename Check42, typename Check43, typename Check44,
3773     typename Check45, typename Check46, typename Check47, typename Check48,
3774     typename Check49, typename Check50, typename Check51, typename Check52,
3775     typename Check53, typename Check54, typename Check55, typename Check56,
3776     typename Check57, typename Action0, typename Action1, typename Action2,
3777     typename Action3, typename Action4, typename Action5, typename Action6,
3778     typename Action7, typename Action8, typename Action9, typename Action10,
3779     typename Action11, typename Action12, typename Action13, typename Action14,
3780     typename Action15, typename Action16, typename Action17, typename Action18,
3781     typename Action19, typename Action20, typename Action21, typename Action22,
3782     typename Action23, typename Action24, typename Action25, typename Action26,
3783     typename Action27, typename Action28, typename Action29, typename Action30,
3784     typename Action31, typename Action32, typename Action33, typename Action34,
3785     typename Action35, typename Action36, typename Action37, typename Action38,
3786     typename Action39, typename Action40, typename Action41, typename Action42,
3787     typename Action43, typename Action44, typename Action45, typename Action46,
3788     typename Action47, typename Action48, typename Action49, typename Action50,
3789     typename Action51, typename Action52, typename Action53, typename Action54,
3790     typename Action55, typename Action56, typename Action57>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Check46 check46,Check47 check47,Check48 check48,Check49 check49,Check50 check50,Check51 check51,Check52 check52,Check53 check53,Check54 check54,Check55 check55,Check56 check56,Check57 check57,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45,Action46 action46,Action47 action47,Action48 action48,Action49 action49,Action50 action50,Action51 action51,Action52 action52,Action53 action53,Action54 action54,Action55 action55,Action56 action56,Action57 action57)3791 auto IfList(
3792     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3793     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3794     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3795     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3796     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3797     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3798     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3799     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3800     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3801     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3802     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3803     Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3804     Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3805     Check51 check51, Check52 check52, Check53 check53, Check54 check54,
3806     Check55 check55, Check56 check56, Check57 check57, Action0 action0,
3807     Action1 action1, Action2 action2, Action3 action3, Action4 action4,
3808     Action5 action5, Action6 action6, Action7 action7, Action8 action8,
3809     Action9 action9, Action10 action10, Action11 action11, Action12 action12,
3810     Action13 action13, Action14 action14, Action15 action15, Action16 action16,
3811     Action17 action17, Action18 action18, Action19 action19, Action20 action20,
3812     Action21 action21, Action22 action22, Action23 action23, Action24 action24,
3813     Action25 action25, Action26 action26, Action27 action27, Action28 action28,
3814     Action29 action29, Action30 action30, Action31 action31, Action32 action32,
3815     Action33 action33, Action34 action34, Action35 action35, Action36 action36,
3816     Action37 action37, Action38 action38, Action39 action39, Action40 action40,
3817     Action41 action41, Action42 action42, Action43 action43, Action44 action44,
3818     Action45 action45, Action46 action46, Action47 action47, Action48 action48,
3819     Action49 action49, Action50 action50, Action51 action51, Action52 action52,
3820     Action53 action53, Action54 action54, Action55 action55, Action56 action56,
3821     Action57 action57) {
3822   if (check0(input)) return action0(action_arg);
3823   if (check1(input)) return action1(action_arg);
3824   if (check2(input)) return action2(action_arg);
3825   if (check3(input)) return action3(action_arg);
3826   if (check4(input)) return action4(action_arg);
3827   if (check5(input)) return action5(action_arg);
3828   if (check6(input)) return action6(action_arg);
3829   if (check7(input)) return action7(action_arg);
3830   if (check8(input)) return action8(action_arg);
3831   if (check9(input)) return action9(action_arg);
3832   if (check10(input)) return action10(action_arg);
3833   if (check11(input)) return action11(action_arg);
3834   if (check12(input)) return action12(action_arg);
3835   if (check13(input)) return action13(action_arg);
3836   if (check14(input)) return action14(action_arg);
3837   if (check15(input)) return action15(action_arg);
3838   if (check16(input)) return action16(action_arg);
3839   if (check17(input)) return action17(action_arg);
3840   if (check18(input)) return action18(action_arg);
3841   if (check19(input)) return action19(action_arg);
3842   if (check20(input)) return action20(action_arg);
3843   if (check21(input)) return action21(action_arg);
3844   if (check22(input)) return action22(action_arg);
3845   if (check23(input)) return action23(action_arg);
3846   if (check24(input)) return action24(action_arg);
3847   if (check25(input)) return action25(action_arg);
3848   if (check26(input)) return action26(action_arg);
3849   if (check27(input)) return action27(action_arg);
3850   if (check28(input)) return action28(action_arg);
3851   if (check29(input)) return action29(action_arg);
3852   if (check30(input)) return action30(action_arg);
3853   if (check31(input)) return action31(action_arg);
3854   if (check32(input)) return action32(action_arg);
3855   if (check33(input)) return action33(action_arg);
3856   if (check34(input)) return action34(action_arg);
3857   if (check35(input)) return action35(action_arg);
3858   if (check36(input)) return action36(action_arg);
3859   if (check37(input)) return action37(action_arg);
3860   if (check38(input)) return action38(action_arg);
3861   if (check39(input)) return action39(action_arg);
3862   if (check40(input)) return action40(action_arg);
3863   if (check41(input)) return action41(action_arg);
3864   if (check42(input)) return action42(action_arg);
3865   if (check43(input)) return action43(action_arg);
3866   if (check44(input)) return action44(action_arg);
3867   if (check45(input)) return action45(action_arg);
3868   if (check46(input)) return action46(action_arg);
3869   if (check47(input)) return action47(action_arg);
3870   if (check48(input)) return action48(action_arg);
3871   if (check49(input)) return action49(action_arg);
3872   if (check50(input)) return action50(action_arg);
3873   if (check51(input)) return action51(action_arg);
3874   if (check52(input)) return action52(action_arg);
3875   if (check53(input)) return action53(action_arg);
3876   if (check54(input)) return action54(action_arg);
3877   if (check55(input)) return action55(action_arg);
3878   if (check56(input)) return action56(action_arg);
3879   if (check57(input)) return action57(action_arg);
3880   return action_fail(action_arg);
3881 }
3882 
3883 template <
3884     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3885     typename Check1, typename Check2, typename Check3, typename Check4,
3886     typename Check5, typename Check6, typename Check7, typename Check8,
3887     typename Check9, typename Check10, typename Check11, typename Check12,
3888     typename Check13, typename Check14, typename Check15, typename Check16,
3889     typename Check17, typename Check18, typename Check19, typename Check20,
3890     typename Check21, typename Check22, typename Check23, typename Check24,
3891     typename Check25, typename Check26, typename Check27, typename Check28,
3892     typename Check29, typename Check30, typename Check31, typename Check32,
3893     typename Check33, typename Check34, typename Check35, typename Check36,
3894     typename Check37, typename Check38, typename Check39, typename Check40,
3895     typename Check41, typename Check42, typename Check43, typename Check44,
3896     typename Check45, typename Check46, typename Check47, typename Check48,
3897     typename Check49, typename Check50, typename Check51, typename Check52,
3898     typename Check53, typename Check54, typename Check55, typename Check56,
3899     typename Check57, typename Check58, typename Action0, typename Action1,
3900     typename Action2, typename Action3, typename Action4, typename Action5,
3901     typename Action6, typename Action7, typename Action8, typename Action9,
3902     typename Action10, typename Action11, typename Action12, typename Action13,
3903     typename Action14, typename Action15, typename Action16, typename Action17,
3904     typename Action18, typename Action19, typename Action20, typename Action21,
3905     typename Action22, typename Action23, typename Action24, typename Action25,
3906     typename Action26, typename Action27, typename Action28, typename Action29,
3907     typename Action30, typename Action31, typename Action32, typename Action33,
3908     typename Action34, typename Action35, typename Action36, typename Action37,
3909     typename Action38, typename Action39, typename Action40, typename Action41,
3910     typename Action42, typename Action43, typename Action44, typename Action45,
3911     typename Action46, typename Action47, typename Action48, typename Action49,
3912     typename Action50, typename Action51, typename Action52, typename Action53,
3913     typename Action54, typename Action55, typename Action56, typename Action57,
3914     typename Action58>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Check46 check46,Check47 check47,Check48 check48,Check49 check49,Check50 check50,Check51 check51,Check52 check52,Check53 check53,Check54 check54,Check55 check55,Check56 check56,Check57 check57,Check58 check58,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45,Action46 action46,Action47 action47,Action48 action48,Action49 action49,Action50 action50,Action51 action51,Action52 action52,Action53 action53,Action54 action54,Action55 action55,Action56 action56,Action57 action57,Action58 action58)3915 auto IfList(
3916     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3917     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3918     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3919     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3920     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3921     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3922     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3923     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3924     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3925     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3926     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3927     Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3928     Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3929     Check51 check51, Check52 check52, Check53 check53, Check54 check54,
3930     Check55 check55, Check56 check56, Check57 check57, Check58 check58,
3931     Action0 action0, Action1 action1, Action2 action2, Action3 action3,
3932     Action4 action4, Action5 action5, Action6 action6, Action7 action7,
3933     Action8 action8, Action9 action9, Action10 action10, Action11 action11,
3934     Action12 action12, Action13 action13, Action14 action14, Action15 action15,
3935     Action16 action16, Action17 action17, Action18 action18, Action19 action19,
3936     Action20 action20, Action21 action21, Action22 action22, Action23 action23,
3937     Action24 action24, Action25 action25, Action26 action26, Action27 action27,
3938     Action28 action28, Action29 action29, Action30 action30, Action31 action31,
3939     Action32 action32, Action33 action33, Action34 action34, Action35 action35,
3940     Action36 action36, Action37 action37, Action38 action38, Action39 action39,
3941     Action40 action40, Action41 action41, Action42 action42, Action43 action43,
3942     Action44 action44, Action45 action45, Action46 action46, Action47 action47,
3943     Action48 action48, Action49 action49, Action50 action50, Action51 action51,
3944     Action52 action52, Action53 action53, Action54 action54, Action55 action55,
3945     Action56 action56, Action57 action57, Action58 action58) {
3946   if (check0(input)) return action0(action_arg);
3947   if (check1(input)) return action1(action_arg);
3948   if (check2(input)) return action2(action_arg);
3949   if (check3(input)) return action3(action_arg);
3950   if (check4(input)) return action4(action_arg);
3951   if (check5(input)) return action5(action_arg);
3952   if (check6(input)) return action6(action_arg);
3953   if (check7(input)) return action7(action_arg);
3954   if (check8(input)) return action8(action_arg);
3955   if (check9(input)) return action9(action_arg);
3956   if (check10(input)) return action10(action_arg);
3957   if (check11(input)) return action11(action_arg);
3958   if (check12(input)) return action12(action_arg);
3959   if (check13(input)) return action13(action_arg);
3960   if (check14(input)) return action14(action_arg);
3961   if (check15(input)) return action15(action_arg);
3962   if (check16(input)) return action16(action_arg);
3963   if (check17(input)) return action17(action_arg);
3964   if (check18(input)) return action18(action_arg);
3965   if (check19(input)) return action19(action_arg);
3966   if (check20(input)) return action20(action_arg);
3967   if (check21(input)) return action21(action_arg);
3968   if (check22(input)) return action22(action_arg);
3969   if (check23(input)) return action23(action_arg);
3970   if (check24(input)) return action24(action_arg);
3971   if (check25(input)) return action25(action_arg);
3972   if (check26(input)) return action26(action_arg);
3973   if (check27(input)) return action27(action_arg);
3974   if (check28(input)) return action28(action_arg);
3975   if (check29(input)) return action29(action_arg);
3976   if (check30(input)) return action30(action_arg);
3977   if (check31(input)) return action31(action_arg);
3978   if (check32(input)) return action32(action_arg);
3979   if (check33(input)) return action33(action_arg);
3980   if (check34(input)) return action34(action_arg);
3981   if (check35(input)) return action35(action_arg);
3982   if (check36(input)) return action36(action_arg);
3983   if (check37(input)) return action37(action_arg);
3984   if (check38(input)) return action38(action_arg);
3985   if (check39(input)) return action39(action_arg);
3986   if (check40(input)) return action40(action_arg);
3987   if (check41(input)) return action41(action_arg);
3988   if (check42(input)) return action42(action_arg);
3989   if (check43(input)) return action43(action_arg);
3990   if (check44(input)) return action44(action_arg);
3991   if (check45(input)) return action45(action_arg);
3992   if (check46(input)) return action46(action_arg);
3993   if (check47(input)) return action47(action_arg);
3994   if (check48(input)) return action48(action_arg);
3995   if (check49(input)) return action49(action_arg);
3996   if (check50(input)) return action50(action_arg);
3997   if (check51(input)) return action51(action_arg);
3998   if (check52(input)) return action52(action_arg);
3999   if (check53(input)) return action53(action_arg);
4000   if (check54(input)) return action54(action_arg);
4001   if (check55(input)) return action55(action_arg);
4002   if (check56(input)) return action56(action_arg);
4003   if (check57(input)) return action57(action_arg);
4004   if (check58(input)) return action58(action_arg);
4005   return action_fail(action_arg);
4006 }
4007 
4008 template <
4009     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
4010     typename Check1, typename Check2, typename Check3, typename Check4,
4011     typename Check5, typename Check6, typename Check7, typename Check8,
4012     typename Check9, typename Check10, typename Check11, typename Check12,
4013     typename Check13, typename Check14, typename Check15, typename Check16,
4014     typename Check17, typename Check18, typename Check19, typename Check20,
4015     typename Check21, typename Check22, typename Check23, typename Check24,
4016     typename Check25, typename Check26, typename Check27, typename Check28,
4017     typename Check29, typename Check30, typename Check31, typename Check32,
4018     typename Check33, typename Check34, typename Check35, typename Check36,
4019     typename Check37, typename Check38, typename Check39, typename Check40,
4020     typename Check41, typename Check42, typename Check43, typename Check44,
4021     typename Check45, typename Check46, typename Check47, typename Check48,
4022     typename Check49, typename Check50, typename Check51, typename Check52,
4023     typename Check53, typename Check54, typename Check55, typename Check56,
4024     typename Check57, typename Check58, typename Check59, typename Action0,
4025     typename Action1, typename Action2, typename Action3, typename Action4,
4026     typename Action5, typename Action6, typename Action7, typename Action8,
4027     typename Action9, typename Action10, typename Action11, typename Action12,
4028     typename Action13, typename Action14, typename Action15, typename Action16,
4029     typename Action17, typename Action18, typename Action19, typename Action20,
4030     typename Action21, typename Action22, typename Action23, typename Action24,
4031     typename Action25, typename Action26, typename Action27, typename Action28,
4032     typename Action29, typename Action30, typename Action31, typename Action32,
4033     typename Action33, typename Action34, typename Action35, typename Action36,
4034     typename Action37, typename Action38, typename Action39, typename Action40,
4035     typename Action41, typename Action42, typename Action43, typename Action44,
4036     typename Action45, typename Action46, typename Action47, typename Action48,
4037     typename Action49, typename Action50, typename Action51, typename Action52,
4038     typename Action53, typename Action54, typename Action55, typename Action56,
4039     typename Action57, typename Action58, typename Action59>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Check46 check46,Check47 check47,Check48 check48,Check49 check49,Check50 check50,Check51 check51,Check52 check52,Check53 check53,Check54 check54,Check55 check55,Check56 check56,Check57 check57,Check58 check58,Check59 check59,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45,Action46 action46,Action47 action47,Action48 action48,Action49 action49,Action50 action50,Action51 action51,Action52 action52,Action53 action53,Action54 action54,Action55 action55,Action56 action56,Action57 action57,Action58 action58,Action59 action59)4040 auto IfList(
4041     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
4042     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
4043     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
4044     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
4045     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
4046     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
4047     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
4048     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
4049     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
4050     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
4051     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
4052     Check43 check43, Check44 check44, Check45 check45, Check46 check46,
4053     Check47 check47, Check48 check48, Check49 check49, Check50 check50,
4054     Check51 check51, Check52 check52, Check53 check53, Check54 check54,
4055     Check55 check55, Check56 check56, Check57 check57, Check58 check58,
4056     Check59 check59, Action0 action0, Action1 action1, Action2 action2,
4057     Action3 action3, Action4 action4, Action5 action5, Action6 action6,
4058     Action7 action7, Action8 action8, Action9 action9, Action10 action10,
4059     Action11 action11, Action12 action12, Action13 action13, Action14 action14,
4060     Action15 action15, Action16 action16, Action17 action17, Action18 action18,
4061     Action19 action19, Action20 action20, Action21 action21, Action22 action22,
4062     Action23 action23, Action24 action24, Action25 action25, Action26 action26,
4063     Action27 action27, Action28 action28, Action29 action29, Action30 action30,
4064     Action31 action31, Action32 action32, Action33 action33, Action34 action34,
4065     Action35 action35, Action36 action36, Action37 action37, Action38 action38,
4066     Action39 action39, Action40 action40, Action41 action41, Action42 action42,
4067     Action43 action43, Action44 action44, Action45 action45, Action46 action46,
4068     Action47 action47, Action48 action48, Action49 action49, Action50 action50,
4069     Action51 action51, Action52 action52, Action53 action53, Action54 action54,
4070     Action55 action55, Action56 action56, Action57 action57, Action58 action58,
4071     Action59 action59) {
4072   if (check0(input)) return action0(action_arg);
4073   if (check1(input)) return action1(action_arg);
4074   if (check2(input)) return action2(action_arg);
4075   if (check3(input)) return action3(action_arg);
4076   if (check4(input)) return action4(action_arg);
4077   if (check5(input)) return action5(action_arg);
4078   if (check6(input)) return action6(action_arg);
4079   if (check7(input)) return action7(action_arg);
4080   if (check8(input)) return action8(action_arg);
4081   if (check9(input)) return action9(action_arg);
4082   if (check10(input)) return action10(action_arg);
4083   if (check11(input)) return action11(action_arg);
4084   if (check12(input)) return action12(action_arg);
4085   if (check13(input)) return action13(action_arg);
4086   if (check14(input)) return action14(action_arg);
4087   if (check15(input)) return action15(action_arg);
4088   if (check16(input)) return action16(action_arg);
4089   if (check17(input)) return action17(action_arg);
4090   if (check18(input)) return action18(action_arg);
4091   if (check19(input)) return action19(action_arg);
4092   if (check20(input)) return action20(action_arg);
4093   if (check21(input)) return action21(action_arg);
4094   if (check22(input)) return action22(action_arg);
4095   if (check23(input)) return action23(action_arg);
4096   if (check24(input)) return action24(action_arg);
4097   if (check25(input)) return action25(action_arg);
4098   if (check26(input)) return action26(action_arg);
4099   if (check27(input)) return action27(action_arg);
4100   if (check28(input)) return action28(action_arg);
4101   if (check29(input)) return action29(action_arg);
4102   if (check30(input)) return action30(action_arg);
4103   if (check31(input)) return action31(action_arg);
4104   if (check32(input)) return action32(action_arg);
4105   if (check33(input)) return action33(action_arg);
4106   if (check34(input)) return action34(action_arg);
4107   if (check35(input)) return action35(action_arg);
4108   if (check36(input)) return action36(action_arg);
4109   if (check37(input)) return action37(action_arg);
4110   if (check38(input)) return action38(action_arg);
4111   if (check39(input)) return action39(action_arg);
4112   if (check40(input)) return action40(action_arg);
4113   if (check41(input)) return action41(action_arg);
4114   if (check42(input)) return action42(action_arg);
4115   if (check43(input)) return action43(action_arg);
4116   if (check44(input)) return action44(action_arg);
4117   if (check45(input)) return action45(action_arg);
4118   if (check46(input)) return action46(action_arg);
4119   if (check47(input)) return action47(action_arg);
4120   if (check48(input)) return action48(action_arg);
4121   if (check49(input)) return action49(action_arg);
4122   if (check50(input)) return action50(action_arg);
4123   if (check51(input)) return action51(action_arg);
4124   if (check52(input)) return action52(action_arg);
4125   if (check53(input)) return action53(action_arg);
4126   if (check54(input)) return action54(action_arg);
4127   if (check55(input)) return action55(action_arg);
4128   if (check56(input)) return action56(action_arg);
4129   if (check57(input)) return action57(action_arg);
4130   if (check58(input)) return action58(action_arg);
4131   if (check59(input)) return action59(action_arg);
4132   return action_fail(action_arg);
4133 }
4134 
4135 template <
4136     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
4137     typename Check1, typename Check2, typename Check3, typename Check4,
4138     typename Check5, typename Check6, typename Check7, typename Check8,
4139     typename Check9, typename Check10, typename Check11, typename Check12,
4140     typename Check13, typename Check14, typename Check15, typename Check16,
4141     typename Check17, typename Check18, typename Check19, typename Check20,
4142     typename Check21, typename Check22, typename Check23, typename Check24,
4143     typename Check25, typename Check26, typename Check27, typename Check28,
4144     typename Check29, typename Check30, typename Check31, typename Check32,
4145     typename Check33, typename Check34, typename Check35, typename Check36,
4146     typename Check37, typename Check38, typename Check39, typename Check40,
4147     typename Check41, typename Check42, typename Check43, typename Check44,
4148     typename Check45, typename Check46, typename Check47, typename Check48,
4149     typename Check49, typename Check50, typename Check51, typename Check52,
4150     typename Check53, typename Check54, typename Check55, typename Check56,
4151     typename Check57, typename Check58, typename Check59, typename Check60,
4152     typename Action0, typename Action1, typename Action2, typename Action3,
4153     typename Action4, typename Action5, typename Action6, typename Action7,
4154     typename Action8, typename Action9, typename Action10, typename Action11,
4155     typename Action12, typename Action13, typename Action14, typename Action15,
4156     typename Action16, typename Action17, typename Action18, typename Action19,
4157     typename Action20, typename Action21, typename Action22, typename Action23,
4158     typename Action24, typename Action25, typename Action26, typename Action27,
4159     typename Action28, typename Action29, typename Action30, typename Action31,
4160     typename Action32, typename Action33, typename Action34, typename Action35,
4161     typename Action36, typename Action37, typename Action38, typename Action39,
4162     typename Action40, typename Action41, typename Action42, typename Action43,
4163     typename Action44, typename Action45, typename Action46, typename Action47,
4164     typename Action48, typename Action49, typename Action50, typename Action51,
4165     typename Action52, typename Action53, typename Action54, typename Action55,
4166     typename Action56, typename Action57, typename Action58, typename Action59,
4167     typename Action60>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Check46 check46,Check47 check47,Check48 check48,Check49 check49,Check50 check50,Check51 check51,Check52 check52,Check53 check53,Check54 check54,Check55 check55,Check56 check56,Check57 check57,Check58 check58,Check59 check59,Check60 check60,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45,Action46 action46,Action47 action47,Action48 action48,Action49 action49,Action50 action50,Action51 action51,Action52 action52,Action53 action53,Action54 action54,Action55 action55,Action56 action56,Action57 action57,Action58 action58,Action59 action59,Action60 action60)4168 auto IfList(
4169     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
4170     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
4171     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
4172     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
4173     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
4174     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
4175     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
4176     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
4177     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
4178     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
4179     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
4180     Check43 check43, Check44 check44, Check45 check45, Check46 check46,
4181     Check47 check47, Check48 check48, Check49 check49, Check50 check50,
4182     Check51 check51, Check52 check52, Check53 check53, Check54 check54,
4183     Check55 check55, Check56 check56, Check57 check57, Check58 check58,
4184     Check59 check59, Check60 check60, Action0 action0, Action1 action1,
4185     Action2 action2, Action3 action3, Action4 action4, Action5 action5,
4186     Action6 action6, Action7 action7, Action8 action8, Action9 action9,
4187     Action10 action10, Action11 action11, Action12 action12, Action13 action13,
4188     Action14 action14, Action15 action15, Action16 action16, Action17 action17,
4189     Action18 action18, Action19 action19, Action20 action20, Action21 action21,
4190     Action22 action22, Action23 action23, Action24 action24, Action25 action25,
4191     Action26 action26, Action27 action27, Action28 action28, Action29 action29,
4192     Action30 action30, Action31 action31, Action32 action32, Action33 action33,
4193     Action34 action34, Action35 action35, Action36 action36, Action37 action37,
4194     Action38 action38, Action39 action39, Action40 action40, Action41 action41,
4195     Action42 action42, Action43 action43, Action44 action44, Action45 action45,
4196     Action46 action46, Action47 action47, Action48 action48, Action49 action49,
4197     Action50 action50, Action51 action51, Action52 action52, Action53 action53,
4198     Action54 action54, Action55 action55, Action56 action56, Action57 action57,
4199     Action58 action58, Action59 action59, Action60 action60) {
4200   if (check0(input)) return action0(action_arg);
4201   if (check1(input)) return action1(action_arg);
4202   if (check2(input)) return action2(action_arg);
4203   if (check3(input)) return action3(action_arg);
4204   if (check4(input)) return action4(action_arg);
4205   if (check5(input)) return action5(action_arg);
4206   if (check6(input)) return action6(action_arg);
4207   if (check7(input)) return action7(action_arg);
4208   if (check8(input)) return action8(action_arg);
4209   if (check9(input)) return action9(action_arg);
4210   if (check10(input)) return action10(action_arg);
4211   if (check11(input)) return action11(action_arg);
4212   if (check12(input)) return action12(action_arg);
4213   if (check13(input)) return action13(action_arg);
4214   if (check14(input)) return action14(action_arg);
4215   if (check15(input)) return action15(action_arg);
4216   if (check16(input)) return action16(action_arg);
4217   if (check17(input)) return action17(action_arg);
4218   if (check18(input)) return action18(action_arg);
4219   if (check19(input)) return action19(action_arg);
4220   if (check20(input)) return action20(action_arg);
4221   if (check21(input)) return action21(action_arg);
4222   if (check22(input)) return action22(action_arg);
4223   if (check23(input)) return action23(action_arg);
4224   if (check24(input)) return action24(action_arg);
4225   if (check25(input)) return action25(action_arg);
4226   if (check26(input)) return action26(action_arg);
4227   if (check27(input)) return action27(action_arg);
4228   if (check28(input)) return action28(action_arg);
4229   if (check29(input)) return action29(action_arg);
4230   if (check30(input)) return action30(action_arg);
4231   if (check31(input)) return action31(action_arg);
4232   if (check32(input)) return action32(action_arg);
4233   if (check33(input)) return action33(action_arg);
4234   if (check34(input)) return action34(action_arg);
4235   if (check35(input)) return action35(action_arg);
4236   if (check36(input)) return action36(action_arg);
4237   if (check37(input)) return action37(action_arg);
4238   if (check38(input)) return action38(action_arg);
4239   if (check39(input)) return action39(action_arg);
4240   if (check40(input)) return action40(action_arg);
4241   if (check41(input)) return action41(action_arg);
4242   if (check42(input)) return action42(action_arg);
4243   if (check43(input)) return action43(action_arg);
4244   if (check44(input)) return action44(action_arg);
4245   if (check45(input)) return action45(action_arg);
4246   if (check46(input)) return action46(action_arg);
4247   if (check47(input)) return action47(action_arg);
4248   if (check48(input)) return action48(action_arg);
4249   if (check49(input)) return action49(action_arg);
4250   if (check50(input)) return action50(action_arg);
4251   if (check51(input)) return action51(action_arg);
4252   if (check52(input)) return action52(action_arg);
4253   if (check53(input)) return action53(action_arg);
4254   if (check54(input)) return action54(action_arg);
4255   if (check55(input)) return action55(action_arg);
4256   if (check56(input)) return action56(action_arg);
4257   if (check57(input)) return action57(action_arg);
4258   if (check58(input)) return action58(action_arg);
4259   if (check59(input)) return action59(action_arg);
4260   if (check60(input)) return action60(action_arg);
4261   return action_fail(action_arg);
4262 }
4263 
4264 template <
4265     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
4266     typename Check1, typename Check2, typename Check3, typename Check4,
4267     typename Check5, typename Check6, typename Check7, typename Check8,
4268     typename Check9, typename Check10, typename Check11, typename Check12,
4269     typename Check13, typename Check14, typename Check15, typename Check16,
4270     typename Check17, typename Check18, typename Check19, typename Check20,
4271     typename Check21, typename Check22, typename Check23, typename Check24,
4272     typename Check25, typename Check26, typename Check27, typename Check28,
4273     typename Check29, typename Check30, typename Check31, typename Check32,
4274     typename Check33, typename Check34, typename Check35, typename Check36,
4275     typename Check37, typename Check38, typename Check39, typename Check40,
4276     typename Check41, typename Check42, typename Check43, typename Check44,
4277     typename Check45, typename Check46, typename Check47, typename Check48,
4278     typename Check49, typename Check50, typename Check51, typename Check52,
4279     typename Check53, typename Check54, typename Check55, typename Check56,
4280     typename Check57, typename Check58, typename Check59, typename Check60,
4281     typename Check61, typename Action0, typename Action1, typename Action2,
4282     typename Action3, typename Action4, typename Action5, typename Action6,
4283     typename Action7, typename Action8, typename Action9, typename Action10,
4284     typename Action11, typename Action12, typename Action13, typename Action14,
4285     typename Action15, typename Action16, typename Action17, typename Action18,
4286     typename Action19, typename Action20, typename Action21, typename Action22,
4287     typename Action23, typename Action24, typename Action25, typename Action26,
4288     typename Action27, typename Action28, typename Action29, typename Action30,
4289     typename Action31, typename Action32, typename Action33, typename Action34,
4290     typename Action35, typename Action36, typename Action37, typename Action38,
4291     typename Action39, typename Action40, typename Action41, typename Action42,
4292     typename Action43, typename Action44, typename Action45, typename Action46,
4293     typename Action47, typename Action48, typename Action49, typename Action50,
4294     typename Action51, typename Action52, typename Action53, typename Action54,
4295     typename Action55, typename Action56, typename Action57, typename Action58,
4296     typename Action59, typename Action60, typename Action61>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Check46 check46,Check47 check47,Check48 check48,Check49 check49,Check50 check50,Check51 check51,Check52 check52,Check53 check53,Check54 check54,Check55 check55,Check56 check56,Check57 check57,Check58 check58,Check59 check59,Check60 check60,Check61 check61,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45,Action46 action46,Action47 action47,Action48 action48,Action49 action49,Action50 action50,Action51 action51,Action52 action52,Action53 action53,Action54 action54,Action55 action55,Action56 action56,Action57 action57,Action58 action58,Action59 action59,Action60 action60,Action61 action61)4297 auto IfList(
4298     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
4299     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
4300     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
4301     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
4302     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
4303     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
4304     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
4305     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
4306     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
4307     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
4308     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
4309     Check43 check43, Check44 check44, Check45 check45, Check46 check46,
4310     Check47 check47, Check48 check48, Check49 check49, Check50 check50,
4311     Check51 check51, Check52 check52, Check53 check53, Check54 check54,
4312     Check55 check55, Check56 check56, Check57 check57, Check58 check58,
4313     Check59 check59, Check60 check60, Check61 check61, Action0 action0,
4314     Action1 action1, Action2 action2, Action3 action3, Action4 action4,
4315     Action5 action5, Action6 action6, Action7 action7, Action8 action8,
4316     Action9 action9, Action10 action10, Action11 action11, Action12 action12,
4317     Action13 action13, Action14 action14, Action15 action15, Action16 action16,
4318     Action17 action17, Action18 action18, Action19 action19, Action20 action20,
4319     Action21 action21, Action22 action22, Action23 action23, Action24 action24,
4320     Action25 action25, Action26 action26, Action27 action27, Action28 action28,
4321     Action29 action29, Action30 action30, Action31 action31, Action32 action32,
4322     Action33 action33, Action34 action34, Action35 action35, Action36 action36,
4323     Action37 action37, Action38 action38, Action39 action39, Action40 action40,
4324     Action41 action41, Action42 action42, Action43 action43, Action44 action44,
4325     Action45 action45, Action46 action46, Action47 action47, Action48 action48,
4326     Action49 action49, Action50 action50, Action51 action51, Action52 action52,
4327     Action53 action53, Action54 action54, Action55 action55, Action56 action56,
4328     Action57 action57, Action58 action58, Action59 action59, Action60 action60,
4329     Action61 action61) {
4330   if (check0(input)) return action0(action_arg);
4331   if (check1(input)) return action1(action_arg);
4332   if (check2(input)) return action2(action_arg);
4333   if (check3(input)) return action3(action_arg);
4334   if (check4(input)) return action4(action_arg);
4335   if (check5(input)) return action5(action_arg);
4336   if (check6(input)) return action6(action_arg);
4337   if (check7(input)) return action7(action_arg);
4338   if (check8(input)) return action8(action_arg);
4339   if (check9(input)) return action9(action_arg);
4340   if (check10(input)) return action10(action_arg);
4341   if (check11(input)) return action11(action_arg);
4342   if (check12(input)) return action12(action_arg);
4343   if (check13(input)) return action13(action_arg);
4344   if (check14(input)) return action14(action_arg);
4345   if (check15(input)) return action15(action_arg);
4346   if (check16(input)) return action16(action_arg);
4347   if (check17(input)) return action17(action_arg);
4348   if (check18(input)) return action18(action_arg);
4349   if (check19(input)) return action19(action_arg);
4350   if (check20(input)) return action20(action_arg);
4351   if (check21(input)) return action21(action_arg);
4352   if (check22(input)) return action22(action_arg);
4353   if (check23(input)) return action23(action_arg);
4354   if (check24(input)) return action24(action_arg);
4355   if (check25(input)) return action25(action_arg);
4356   if (check26(input)) return action26(action_arg);
4357   if (check27(input)) return action27(action_arg);
4358   if (check28(input)) return action28(action_arg);
4359   if (check29(input)) return action29(action_arg);
4360   if (check30(input)) return action30(action_arg);
4361   if (check31(input)) return action31(action_arg);
4362   if (check32(input)) return action32(action_arg);
4363   if (check33(input)) return action33(action_arg);
4364   if (check34(input)) return action34(action_arg);
4365   if (check35(input)) return action35(action_arg);
4366   if (check36(input)) return action36(action_arg);
4367   if (check37(input)) return action37(action_arg);
4368   if (check38(input)) return action38(action_arg);
4369   if (check39(input)) return action39(action_arg);
4370   if (check40(input)) return action40(action_arg);
4371   if (check41(input)) return action41(action_arg);
4372   if (check42(input)) return action42(action_arg);
4373   if (check43(input)) return action43(action_arg);
4374   if (check44(input)) return action44(action_arg);
4375   if (check45(input)) return action45(action_arg);
4376   if (check46(input)) return action46(action_arg);
4377   if (check47(input)) return action47(action_arg);
4378   if (check48(input)) return action48(action_arg);
4379   if (check49(input)) return action49(action_arg);
4380   if (check50(input)) return action50(action_arg);
4381   if (check51(input)) return action51(action_arg);
4382   if (check52(input)) return action52(action_arg);
4383   if (check53(input)) return action53(action_arg);
4384   if (check54(input)) return action54(action_arg);
4385   if (check55(input)) return action55(action_arg);
4386   if (check56(input)) return action56(action_arg);
4387   if (check57(input)) return action57(action_arg);
4388   if (check58(input)) return action58(action_arg);
4389   if (check59(input)) return action59(action_arg);
4390   if (check60(input)) return action60(action_arg);
4391   if (check61(input)) return action61(action_arg);
4392   return action_fail(action_arg);
4393 }
4394 
4395 template <
4396     typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
4397     typename Check1, typename Check2, typename Check3, typename Check4,
4398     typename Check5, typename Check6, typename Check7, typename Check8,
4399     typename Check9, typename Check10, typename Check11, typename Check12,
4400     typename Check13, typename Check14, typename Check15, typename Check16,
4401     typename Check17, typename Check18, typename Check19, typename Check20,
4402     typename Check21, typename Check22, typename Check23, typename Check24,
4403     typename Check25, typename Check26, typename Check27, typename Check28,
4404     typename Check29, typename Check30, typename Check31, typename Check32,
4405     typename Check33, typename Check34, typename Check35, typename Check36,
4406     typename Check37, typename Check38, typename Check39, typename Check40,
4407     typename Check41, typename Check42, typename Check43, typename Check44,
4408     typename Check45, typename Check46, typename Check47, typename Check48,
4409     typename Check49, typename Check50, typename Check51, typename Check52,
4410     typename Check53, typename Check54, typename Check55, typename Check56,
4411     typename Check57, typename Check58, typename Check59, typename Check60,
4412     typename Check61, typename Check62, typename Action0, typename Action1,
4413     typename Action2, typename Action3, typename Action4, typename Action5,
4414     typename Action6, typename Action7, typename Action8, typename Action9,
4415     typename Action10, typename Action11, typename Action12, typename Action13,
4416     typename Action14, typename Action15, typename Action16, typename Action17,
4417     typename Action18, typename Action19, typename Action20, typename Action21,
4418     typename Action22, typename Action23, typename Action24, typename Action25,
4419     typename Action26, typename Action27, typename Action28, typename Action29,
4420     typename Action30, typename Action31, typename Action32, typename Action33,
4421     typename Action34, typename Action35, typename Action36, typename Action37,
4422     typename Action38, typename Action39, typename Action40, typename Action41,
4423     typename Action42, typename Action43, typename Action44, typename Action45,
4424     typename Action46, typename Action47, typename Action48, typename Action49,
4425     typename Action50, typename Action51, typename Action52, typename Action53,
4426     typename Action54, typename Action55, typename Action56, typename Action57,
4427     typename Action58, typename Action59, typename Action60, typename Action61,
4428     typename Action62>
IfList(CheckArg input,ActionArg action_arg,ActionFail action_fail,Check0 check0,Check1 check1,Check2 check2,Check3 check3,Check4 check4,Check5 check5,Check6 check6,Check7 check7,Check8 check8,Check9 check9,Check10 check10,Check11 check11,Check12 check12,Check13 check13,Check14 check14,Check15 check15,Check16 check16,Check17 check17,Check18 check18,Check19 check19,Check20 check20,Check21 check21,Check22 check22,Check23 check23,Check24 check24,Check25 check25,Check26 check26,Check27 check27,Check28 check28,Check29 check29,Check30 check30,Check31 check31,Check32 check32,Check33 check33,Check34 check34,Check35 check35,Check36 check36,Check37 check37,Check38 check38,Check39 check39,Check40 check40,Check41 check41,Check42 check42,Check43 check43,Check44 check44,Check45 check45,Check46 check46,Check47 check47,Check48 check48,Check49 check49,Check50 check50,Check51 check51,Check52 check52,Check53 check53,Check54 check54,Check55 check55,Check56 check56,Check57 check57,Check58 check58,Check59 check59,Check60 check60,Check61 check61,Check62 check62,Action0 action0,Action1 action1,Action2 action2,Action3 action3,Action4 action4,Action5 action5,Action6 action6,Action7 action7,Action8 action8,Action9 action9,Action10 action10,Action11 action11,Action12 action12,Action13 action13,Action14 action14,Action15 action15,Action16 action16,Action17 action17,Action18 action18,Action19 action19,Action20 action20,Action21 action21,Action22 action22,Action23 action23,Action24 action24,Action25 action25,Action26 action26,Action27 action27,Action28 action28,Action29 action29,Action30 action30,Action31 action31,Action32 action32,Action33 action33,Action34 action34,Action35 action35,Action36 action36,Action37 action37,Action38 action38,Action39 action39,Action40 action40,Action41 action41,Action42 action42,Action43 action43,Action44 action44,Action45 action45,Action46 action46,Action47 action47,Action48 action48,Action49 action49,Action50 action50,Action51 action51,Action52 action52,Action53 action53,Action54 action54,Action55 action55,Action56 action56,Action57 action57,Action58 action58,Action59 action59,Action60 action60,Action61 action61,Action62 action62)4429 auto IfList(
4430     CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
4431     Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
4432     Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
4433     Check11 check11, Check12 check12, Check13 check13, Check14 check14,
4434     Check15 check15, Check16 check16, Check17 check17, Check18 check18,
4435     Check19 check19, Check20 check20, Check21 check21, Check22 check22,
4436     Check23 check23, Check24 check24, Check25 check25, Check26 check26,
4437     Check27 check27, Check28 check28, Check29 check29, Check30 check30,
4438     Check31 check31, Check32 check32, Check33 check33, Check34 check34,
4439     Check35 check35, Check36 check36, Check37 check37, Check38 check38,
4440     Check39 check39, Check40 check40, Check41 check41, Check42 check42,
4441     Check43 check43, Check44 check44, Check45 check45, Check46 check46,
4442     Check47 check47, Check48 check48, Check49 check49, Check50 check50,
4443     Check51 check51, Check52 check52, Check53 check53, Check54 check54,
4444     Check55 check55, Check56 check56, Check57 check57, Check58 check58,
4445     Check59 check59, Check60 check60, Check61 check61, Check62 check62,
4446     Action0 action0, Action1 action1, Action2 action2, Action3 action3,
4447     Action4 action4, Action5 action5, Action6 action6, Action7 action7,
4448     Action8 action8, Action9 action9, Action10 action10, Action11 action11,
4449     Action12 action12, Action13 action13, Action14 action14, Action15 action15,
4450     Action16 action16, Action17 action17, Action18 action18, Action19 action19,
4451     Action20 action20, Action21 action21, Action22 action22, Action23 action23,
4452     Action24 action24, Action25 action25, Action26 action26, Action27 action27,
4453     Action28 action28, Action29 action29, Action30 action30, Action31 action31,
4454     Action32 action32, Action33 action33, Action34 action34, Action35 action35,
4455     Action36 action36, Action37 action37, Action38 action38, Action39 action39,
4456     Action40 action40, Action41 action41, Action42 action42, Action43 action43,
4457     Action44 action44, Action45 action45, Action46 action46, Action47 action47,
4458     Action48 action48, Action49 action49, Action50 action50, Action51 action51,
4459     Action52 action52, Action53 action53, Action54 action54, Action55 action55,
4460     Action56 action56, Action57 action57, Action58 action58, Action59 action59,
4461     Action60 action60, Action61 action61, Action62 action62) {
4462   if (check0(input)) return action0(action_arg);
4463   if (check1(input)) return action1(action_arg);
4464   if (check2(input)) return action2(action_arg);
4465   if (check3(input)) return action3(action_arg);
4466   if (check4(input)) return action4(action_arg);
4467   if (check5(input)) return action5(action_arg);
4468   if (check6(input)) return action6(action_arg);
4469   if (check7(input)) return action7(action_arg);
4470   if (check8(input)) return action8(action_arg);
4471   if (check9(input)) return action9(action_arg);
4472   if (check10(input)) return action10(action_arg);
4473   if (check11(input)) return action11(action_arg);
4474   if (check12(input)) return action12(action_arg);
4475   if (check13(input)) return action13(action_arg);
4476   if (check14(input)) return action14(action_arg);
4477   if (check15(input)) return action15(action_arg);
4478   if (check16(input)) return action16(action_arg);
4479   if (check17(input)) return action17(action_arg);
4480   if (check18(input)) return action18(action_arg);
4481   if (check19(input)) return action19(action_arg);
4482   if (check20(input)) return action20(action_arg);
4483   if (check21(input)) return action21(action_arg);
4484   if (check22(input)) return action22(action_arg);
4485   if (check23(input)) return action23(action_arg);
4486   if (check24(input)) return action24(action_arg);
4487   if (check25(input)) return action25(action_arg);
4488   if (check26(input)) return action26(action_arg);
4489   if (check27(input)) return action27(action_arg);
4490   if (check28(input)) return action28(action_arg);
4491   if (check29(input)) return action29(action_arg);
4492   if (check30(input)) return action30(action_arg);
4493   if (check31(input)) return action31(action_arg);
4494   if (check32(input)) return action32(action_arg);
4495   if (check33(input)) return action33(action_arg);
4496   if (check34(input)) return action34(action_arg);
4497   if (check35(input)) return action35(action_arg);
4498   if (check36(input)) return action36(action_arg);
4499   if (check37(input)) return action37(action_arg);
4500   if (check38(input)) return action38(action_arg);
4501   if (check39(input)) return action39(action_arg);
4502   if (check40(input)) return action40(action_arg);
4503   if (check41(input)) return action41(action_arg);
4504   if (check42(input)) return action42(action_arg);
4505   if (check43(input)) return action43(action_arg);
4506   if (check44(input)) return action44(action_arg);
4507   if (check45(input)) return action45(action_arg);
4508   if (check46(input)) return action46(action_arg);
4509   if (check47(input)) return action47(action_arg);
4510   if (check48(input)) return action48(action_arg);
4511   if (check49(input)) return action49(action_arg);
4512   if (check50(input)) return action50(action_arg);
4513   if (check51(input)) return action51(action_arg);
4514   if (check52(input)) return action52(action_arg);
4515   if (check53(input)) return action53(action_arg);
4516   if (check54(input)) return action54(action_arg);
4517   if (check55(input)) return action55(action_arg);
4518   if (check56(input)) return action56(action_arg);
4519   if (check57(input)) return action57(action_arg);
4520   if (check58(input)) return action58(action_arg);
4521   if (check59(input)) return action59(action_arg);
4522   if (check60(input)) return action60(action_arg);
4523   if (check61(input)) return action61(action_arg);
4524   if (check62(input)) return action62(action_arg);
4525   return action_fail(action_arg);
4526 }
4527 
4528 }  // namespace grpc_core
4529 
4530 #endif  // GRPC_SRC_CORE_LIB_GPRPP_IF_LIST_H
4531