Embedded Template Library 1.0
Loading...
Searching...
No Matches
type_select_cpp03.h
1/******************************************************************************
2The MIT License(MIT)
3
4Embedded Template Library.
5https://github.com/ETLCPP/etl
6https://www.etlcpp.com
7
8Copyright(c) 2026 John Wellbelove
9
10Permission is hereby granted, free of charge, to any person obtaining a copy
11of this software and associated documentation files(the "Software"), to deal
12in the Software without restriction, including without limitation the rights
13to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
14copies of the Software, and to permit persons to whom the Software is
15furnished to do so, subject to the following conditions :
16
17The above copyright notice and this permission notice shall be included in all
18copies or substantial portions of the Software.
19
20THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
23AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26SOFTWARE.
27******************************************************************************/
28
29//***************************************************************************
30// THIS FILE HAS BEEN AUTO GENERATED. DO NOT EDIT THIS FILE.
31//***************************************************************************
32
33
34//***************************************************************************
35// For 16 types.
36//***************************************************************************
37template <typename T0,
38 typename T1 = void,
39 typename T2 = void,
40 typename T3 = void,
41 typename T4 = void,
42 typename T5 = void,
43 typename T6 = void,
44 typename T7 = void,
45 typename T8 = void,
46 typename T9 = void,
47 typename T10 = void,
48 typename T11 = void,
49 typename T12 = void,
50 typename T13 = void,
51 typename T14 = void,
52 typename T15 = void>
54{
55public:
56
57 template <size_t Id>
58 struct select
59 {
60 typedef typename etl::conditional<Id == 0, T0,
61 typename etl::conditional<Id == 1, T1,
62 typename etl::conditional<Id == 2, T2,
63 typename etl::conditional<Id == 3, T3,
64 typename etl::conditional<Id == 4, T4,
65 typename etl::conditional<Id == 5, T5,
66 typename etl::conditional<Id == 6, T6,
67 typename etl::conditional<Id == 7, T7,
68 typename etl::conditional<Id == 8, T8,
69 typename etl::conditional<Id == 9, T9,
70 typename etl::conditional<Id == 10, T10,
71 typename etl::conditional<Id == 11, T11,
72 typename etl::conditional<Id == 12, T12,
73 typename etl::conditional<Id == 13, T13,
74 typename etl::conditional<Id == 14, T14,
75 typename etl::conditional<Id == 15, T15,
77 ::type>::type>::type>::type>::type>::type>::type>::type>
78 ::type>::type>::type>::type>::type>::type>::type>::type type;
79
80 ETL_STATIC_ASSERT(Id < 16, "Invalid Id");
81 };
82};
83
84//***************************************************************************
85// For 15 types.
86//***************************************************************************
87template <typename T0,
88 typename T1,
89 typename T2,
90 typename T3,
91 typename T4,
92 typename T5,
93 typename T6,
94 typename T7,
95 typename T8,
96 typename T9,
97 typename T10,
98 typename T11,
99 typename T12,
100 typename T13,
101 typename T14>
102struct type_select<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>
103{
104public:
105 template <size_t Id>
106 struct select
107 {
108 typedef typename etl::conditional<Id == 0, T0,
109 typename etl::conditional<Id == 1, T1,
110 typename etl::conditional<Id == 2, T2,
111 typename etl::conditional<Id == 3, T3,
112 typename etl::conditional<Id == 4, T4,
113 typename etl::conditional<Id == 5, T5,
114 typename etl::conditional<Id == 6, T6,
115 typename etl::conditional<Id == 7, T7,
116 typename etl::conditional<Id == 8, T8,
117 typename etl::conditional<Id == 9, T9,
118 typename etl::conditional<Id == 10, T10,
119 typename etl::conditional<Id == 11, T11,
120 typename etl::conditional<Id == 12, T12,
121 typename etl::conditional<Id == 13, T13,
122 typename etl::conditional<Id == 14, T14,
124 ::type>::type>::type>::type>::type>::type>::type>::type>
125 ::type>::type>::type>::type>::type>::type>::type type;
126
127 ETL_STATIC_ASSERT(Id < 15, "Invalid Id");
128 };
129};
130
131//***************************************************************************
132// For 14 types.
133//***************************************************************************
134template <typename T0,
135 typename T1,
136 typename T2,
137 typename T3,
138 typename T4,
139 typename T5,
140 typename T6,
141 typename T7,
142 typename T8,
143 typename T9,
144 typename T10,
145 typename T11,
146 typename T12,
147 typename T13>
148struct type_select<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>
149{
150public:
151 template <size_t Id>
152 struct select
153 {
154 typedef typename etl::conditional<Id == 0, T0,
155 typename etl::conditional<Id == 1, T1,
156 typename etl::conditional<Id == 2, T2,
157 typename etl::conditional<Id == 3, T3,
158 typename etl::conditional<Id == 4, T4,
159 typename etl::conditional<Id == 5, T5,
160 typename etl::conditional<Id == 6, T6,
161 typename etl::conditional<Id == 7, T7,
162 typename etl::conditional<Id == 8, T8,
163 typename etl::conditional<Id == 9, T9,
164 typename etl::conditional<Id == 10, T10,
165 typename etl::conditional<Id == 11, T11,
166 typename etl::conditional<Id == 12, T12,
167 typename etl::conditional<Id == 13, T13,
169 ::type>::type>::type>::type>::type>::type>::type>::type>
170 ::type>::type>::type>::type>::type>::type type;
171
172 ETL_STATIC_ASSERT(Id < 14, "Invalid Id");
173 };
174};
175
176//***************************************************************************
177// For 13 types.
178//***************************************************************************
179template <typename T0,
180 typename T1,
181 typename T2,
182 typename T3,
183 typename T4,
184 typename T5,
185 typename T6,
186 typename T7,
187 typename T8,
188 typename T9,
189 typename T10,
190 typename T11,
191 typename T12>
192struct type_select<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>
193{
194public:
195 template <size_t Id>
196 struct select
197 {
198 typedef typename etl::conditional<Id == 0, T0,
199 typename etl::conditional<Id == 1, T1,
200 typename etl::conditional<Id == 2, T2,
201 typename etl::conditional<Id == 3, T3,
202 typename etl::conditional<Id == 4, T4,
203 typename etl::conditional<Id == 5, T5,
204 typename etl::conditional<Id == 6, T6,
205 typename etl::conditional<Id == 7, T7,
206 typename etl::conditional<Id == 8, T8,
207 typename etl::conditional<Id == 9, T9,
208 typename etl::conditional<Id == 10, T10,
209 typename etl::conditional<Id == 11, T11,
210 typename etl::conditional<Id == 12, T12,
212 ::type>::type>::type>::type>::type>::type>::type>::type>
213 ::type>::type>::type>::type>::type type;
214
215 ETL_STATIC_ASSERT(Id < 13, "Invalid Id");
216 };
217};
218
219//***************************************************************************
220// For 12 types.
221//***************************************************************************
222template <typename T0,
223 typename T1,
224 typename T2,
225 typename T3,
226 typename T4,
227 typename T5,
228 typename T6,
229 typename T7,
230 typename T8,
231 typename T9,
232 typename T10,
233 typename T11>
234struct type_select<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>
235{
236public:
237 template <size_t Id>
238 struct select
239 {
240 typedef typename etl::conditional<Id == 0, T0,
241 typename etl::conditional<Id == 1, T1,
242 typename etl::conditional<Id == 2, T2,
243 typename etl::conditional<Id == 3, T3,
244 typename etl::conditional<Id == 4, T4,
245 typename etl::conditional<Id == 5, T5,
246 typename etl::conditional<Id == 6, T6,
247 typename etl::conditional<Id == 7, T7,
248 typename etl::conditional<Id == 8, T8,
249 typename etl::conditional<Id == 9, T9,
250 typename etl::conditional<Id == 10, T10,
251 typename etl::conditional<Id == 11, T11,
253 ::type>::type>::type>::type>::type>::type>::type>::type>
254 ::type>::type>::type>::type type;
255
256 ETL_STATIC_ASSERT(Id < 12, "Invalid Id");
257 };
258};
259
260//***************************************************************************
261// For 11 types.
262//***************************************************************************
263template <typename T0,
264 typename T1,
265 typename T2,
266 typename T3,
267 typename T4,
268 typename T5,
269 typename T6,
270 typename T7,
271 typename T8,
272 typename T9,
273 typename T10>
274struct type_select<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
275{
276public:
277 template <size_t Id>
278 struct select
279 {
280 typedef typename etl::conditional<Id == 0, T0,
281 typename etl::conditional<Id == 1, T1,
282 typename etl::conditional<Id == 2, T2,
283 typename etl::conditional<Id == 3, T3,
284 typename etl::conditional<Id == 4, T4,
285 typename etl::conditional<Id == 5, T5,
286 typename etl::conditional<Id == 6, T6,
287 typename etl::conditional<Id == 7, T7,
288 typename etl::conditional<Id == 8, T8,
289 typename etl::conditional<Id == 9, T9,
290 typename etl::conditional<Id == 10, T10,
292 ::type>::type>::type>::type>::type>::type>::type>::type>
293 ::type>::type>::type type;
294
295 ETL_STATIC_ASSERT(Id < 11, "Invalid Id");
296 };
297};
298
299//***************************************************************************
300// For 10 types.
301//***************************************************************************
302template <typename T0,
303 typename T1,
304 typename T2,
305 typename T3,
306 typename T4,
307 typename T5,
308 typename T6,
309 typename T7,
310 typename T8,
311 typename T9>
312struct type_select<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>
313{
314public:
315 template <size_t Id>
316 struct select
317 {
318 typedef typename etl::conditional<Id == 0, T0,
319 typename etl::conditional<Id == 1, T1,
320 typename etl::conditional<Id == 2, T2,
321 typename etl::conditional<Id == 3, T3,
322 typename etl::conditional<Id == 4, T4,
323 typename etl::conditional<Id == 5, T5,
324 typename etl::conditional<Id == 6, T6,
325 typename etl::conditional<Id == 7, T7,
326 typename etl::conditional<Id == 8, T8,
327 typename etl::conditional<Id == 9, T9,
329 ::type>::type>::type>::type>::type>::type>::type>::type>
330 ::type>::type type;
331
332 ETL_STATIC_ASSERT(Id < 10, "Invalid Id");
333 };
334};
335
336//***************************************************************************
337// For 9 types.
338//***************************************************************************
339template <typename T0,
340 typename T1,
341 typename T2,
342 typename T3,
343 typename T4,
344 typename T5,
345 typename T6,
346 typename T7,
347 typename T8>
348struct type_select<T0, T1, T2, T3, T4, T5, T6, T7, T8>
349{
350public:
351 template <size_t Id>
352 struct select
353 {
354 typedef typename etl::conditional<Id == 0, T0,
355 typename etl::conditional<Id == 1, T1,
356 typename etl::conditional<Id == 2, T2,
357 typename etl::conditional<Id == 3, T3,
358 typename etl::conditional<Id == 4, T4,
359 typename etl::conditional<Id == 5, T5,
360 typename etl::conditional<Id == 6, T6,
361 typename etl::conditional<Id == 7, T7,
362 typename etl::conditional<Id == 8, T8,
364 ::type>::type>::type>::type>::type>::type>::type>::type>
365 ::type type;
366
367 ETL_STATIC_ASSERT(Id < 9, "Invalid Id");
368 };
369};
370
371//***************************************************************************
372// For 8 types.
373//***************************************************************************
374template <typename T0,
375 typename T1,
376 typename T2,
377 typename T3,
378 typename T4,
379 typename T5,
380 typename T6,
381 typename T7>
382struct type_select<T0, T1, T2, T3, T4, T5, T6, T7>
383{
384public:
385 template <size_t Id>
386 struct select
387 {
388 typedef typename etl::conditional<Id == 0, T0,
389 typename etl::conditional<Id == 1, T1,
390 typename etl::conditional<Id == 2, T2,
391 typename etl::conditional<Id == 3, T3,
392 typename etl::conditional<Id == 4, T4,
393 typename etl::conditional<Id == 5, T5,
394 typename etl::conditional<Id == 6, T6,
395 typename etl::conditional<Id == 7, T7,
397 ::type>::type>::type>::type>::type>::type>::type>::type type;
398
399 ETL_STATIC_ASSERT(Id < 8, "Invalid Id");
400 };
401};
402
403//***************************************************************************
404// For 7 types.
405//***************************************************************************
406template <typename T0,
407 typename T1,
408 typename T2,
409 typename T3,
410 typename T4,
411 typename T5,
412 typename T6>
413struct type_select<T0, T1, T2, T3, T4, T5, T6>
414{
415public:
416 template <size_t Id>
417 struct select
418 {
419 typedef typename etl::conditional<Id == 0, T0,
420 typename etl::conditional<Id == 1, T1,
421 typename etl::conditional<Id == 2, T2,
422 typename etl::conditional<Id == 3, T3,
423 typename etl::conditional<Id == 4, T4,
424 typename etl::conditional<Id == 5, T5,
425 typename etl::conditional<Id == 6, T6,
427 ::type>::type>::type>::type>::type>::type>::type type;
428
429 ETL_STATIC_ASSERT(Id < 7, "Invalid Id");
430 };
431};
432
433//***************************************************************************
434// For 6 types.
435//***************************************************************************
436template <typename T0,
437 typename T1,
438 typename T2,
439 typename T3,
440 typename T4,
441 typename T5>
442struct type_select<T0, T1, T2, T3, T4, T5>
443{
444public:
445 template <size_t Id>
446 struct select
447 {
448 typedef typename etl::conditional<Id == 0, T0,
449 typename etl::conditional<Id == 1, T1,
450 typename etl::conditional<Id == 2, T2,
451 typename etl::conditional<Id == 3, T3,
452 typename etl::conditional<Id == 4, T4,
453 typename etl::conditional<Id == 5, T5,
455 ::type>::type>::type>::type>::type>::type type;
456
457 ETL_STATIC_ASSERT(Id < 6, "Invalid Id");
458 };
459};
460
461//***************************************************************************
462// For 5 types.
463//***************************************************************************
464template <typename T0,
465 typename T1,
466 typename T2,
467 typename T3,
468 typename T4>
469struct type_select<T0, T1, T2, T3, T4>
470{
471public:
472 template <size_t Id>
473 struct select
474 {
475 typedef typename etl::conditional<Id == 0, T0,
476 typename etl::conditional<Id == 1, T1,
477 typename etl::conditional<Id == 2, T2,
478 typename etl::conditional<Id == 3, T3,
479 typename etl::conditional<Id == 4, T4,
481 ::type>::type>::type>::type>::type type;
482
483 ETL_STATIC_ASSERT(Id < 5, "Invalid Id");
484 };
485};
486
487//***************************************************************************
488// For 4 types.
489//***************************************************************************
490template <typename T0,
491 typename T1,
492 typename T2,
493 typename T3>
494struct type_select<T0, T1, T2, T3>
495{
496public:
497 template <size_t Id>
498 struct select
499 {
500 typedef typename etl::conditional<Id == 0, T0,
501 typename etl::conditional<Id == 1, T1,
502 typename etl::conditional<Id == 2, T2,
503 typename etl::conditional<Id == 3, T3,
505 ::type>::type>::type>::type type;
506
507 ETL_STATIC_ASSERT(Id < 4, "Invalid Id");
508 };
509};
510
511//***************************************************************************
512// For 3 types.
513//***************************************************************************
514template <typename T0,
515 typename T1,
516 typename T2>
517struct type_select<T0, T1, T2>
518{
519public:
520 template <size_t Id>
521 struct select
522 {
523 typedef typename etl::conditional<Id == 0, T0,
524 typename etl::conditional<Id == 1, T1,
525 typename etl::conditional<Id == 2, T2,
527 ::type>::type>::type type;
528
529 ETL_STATIC_ASSERT(Id < 3, "Invalid Id");
530 };
531};
532
533//***************************************************************************
534// For 2 types.
535//***************************************************************************
536template <typename T0,
537 typename T1>
538struct type_select<T0, T1>
539{
540public:
541 template <size_t Id>
542 struct select
543 {
544 typedef typename etl::conditional<Id == 0, T0,
545 typename etl::conditional<Id == 1, T1,
547 ::type>::type type;
548
549 ETL_STATIC_ASSERT(Id < 2, "Invalid Id");
550 };
551};
552
553//***************************************************************************
554// For 1 types.
555//***************************************************************************
556template <typename T0>
557struct type_select<T0>
558{
559public:
560 template <size_t Id>
561 struct select
562 {
563 typedef typename etl::conditional<Id == 0, T0,
565 ::type type;
566
567 ETL_STATIC_ASSERT(Id < 1, "Invalid Id");
568 };
569};
Definition null_type.h:40
Definition type_select_cpp03.h:59
Definition type_select_cpp03.h:418
Definition type_select_cpp03.h:447
Definition type_select_cpp03.h:474
Definition type_select_cpp03.h:499
Definition type_select_cpp03.h:522
Definition type_select_cpp03.h:543
Definition type_select_cpp03.h:562
Definition type_select_cpp03.h:54