in src/common/utils/TypeTraits.h [142:275]
constexpr auto callByIdx(auto &&f, size_t idx) {
switch (idx) {
case 0:
if constexpr (0 < std::tuple_size_v<T>) return f(std::tuple_element_t<0, T>{});
case 1:
if constexpr (1 < std::tuple_size_v<T>) return f(std::tuple_element_t<1, T>{});
case 2:
if constexpr (2 < std::tuple_size_v<T>) return f(std::tuple_element_t<2, T>{});
case 3:
if constexpr (3 < std::tuple_size_v<T>) return f(std::tuple_element_t<3, T>{});
case 4:
if constexpr (4 < std::tuple_size_v<T>) return f(std::tuple_element_t<4, T>{});
case 5:
if constexpr (5 < std::tuple_size_v<T>) return f(std::tuple_element_t<5, T>{});
case 6:
if constexpr (6 < std::tuple_size_v<T>) return f(std::tuple_element_t<6, T>{});
case 7:
if constexpr (7 < std::tuple_size_v<T>) return f(std::tuple_element_t<7, T>{});
case 8:
if constexpr (8 < std::tuple_size_v<T>) return f(std::tuple_element_t<8, T>{});
case 9:
if constexpr (9 < std::tuple_size_v<T>) return f(std::tuple_element_t<9, T>{});
case 10:
if constexpr (10 < std::tuple_size_v<T>) return f(std::tuple_element_t<10, T>{});
case 11:
if constexpr (11 < std::tuple_size_v<T>) return f(std::tuple_element_t<11, T>{});
case 12:
if constexpr (12 < std::tuple_size_v<T>) return f(std::tuple_element_t<12, T>{});
case 13:
if constexpr (13 < std::tuple_size_v<T>) return f(std::tuple_element_t<13, T>{});
case 14:
if constexpr (14 < std::tuple_size_v<T>) return f(std::tuple_element_t<14, T>{});
case 15:
if constexpr (15 < std::tuple_size_v<T>) return f(std::tuple_element_t<15, T>{});
case 16:
if constexpr (16 < std::tuple_size_v<T>) return f(std::tuple_element_t<16, T>{});
case 17:
if constexpr (17 < std::tuple_size_v<T>) return f(std::tuple_element_t<17, T>{});
case 18:
if constexpr (18 < std::tuple_size_v<T>) return f(std::tuple_element_t<18, T>{});
case 19:
if constexpr (19 < std::tuple_size_v<T>) return f(std::tuple_element_t<19, T>{});
case 20:
if constexpr (20 < std::tuple_size_v<T>) return f(std::tuple_element_t<20, T>{});
case 21:
if constexpr (21 < std::tuple_size_v<T>) return f(std::tuple_element_t<21, T>{});
case 22:
if constexpr (22 < std::tuple_size_v<T>) return f(std::tuple_element_t<22, T>{});
case 23:
if constexpr (23 < std::tuple_size_v<T>) return f(std::tuple_element_t<23, T>{});
case 24:
if constexpr (24 < std::tuple_size_v<T>) return f(std::tuple_element_t<24, T>{});
case 25:
if constexpr (25 < std::tuple_size_v<T>) return f(std::tuple_element_t<25, T>{});
case 26:
if constexpr (26 < std::tuple_size_v<T>) return f(std::tuple_element_t<26, T>{});
case 27:
if constexpr (27 < std::tuple_size_v<T>) return f(std::tuple_element_t<27, T>{});
case 28:
if constexpr (28 < std::tuple_size_v<T>) return f(std::tuple_element_t<28, T>{});
case 29:
if constexpr (29 < std::tuple_size_v<T>) return f(std::tuple_element_t<29, T>{});
case 30:
if constexpr (30 < std::tuple_size_v<T>) return f(std::tuple_element_t<30, T>{});
case 31:
if constexpr (31 < std::tuple_size_v<T>) return f(std::tuple_element_t<31, T>{});
case 32:
if constexpr (32 < std::tuple_size_v<T>) return f(std::tuple_element_t<32, T>{});
case 33:
if constexpr (33 < std::tuple_size_v<T>) return f(std::tuple_element_t<33, T>{});
case 34:
if constexpr (34 < std::tuple_size_v<T>) return f(std::tuple_element_t<34, T>{});
case 35:
if constexpr (35 < std::tuple_size_v<T>) return f(std::tuple_element_t<35, T>{});
case 36:
if constexpr (36 < std::tuple_size_v<T>) return f(std::tuple_element_t<36, T>{});
case 37:
if constexpr (37 < std::tuple_size_v<T>) return f(std::tuple_element_t<37, T>{});
case 38:
if constexpr (38 < std::tuple_size_v<T>) return f(std::tuple_element_t<38, T>{});
case 39:
if constexpr (39 < std::tuple_size_v<T>) return f(std::tuple_element_t<39, T>{});
case 40:
if constexpr (40 < std::tuple_size_v<T>) return f(std::tuple_element_t<40, T>{});
case 41:
if constexpr (41 < std::tuple_size_v<T>) return f(std::tuple_element_t<41, T>{});
case 42:
if constexpr (42 < std::tuple_size_v<T>) return f(std::tuple_element_t<42, T>{});
case 43:
if constexpr (43 < std::tuple_size_v<T>) return f(std::tuple_element_t<43, T>{});
case 44:
if constexpr (44 < std::tuple_size_v<T>) return f(std::tuple_element_t<44, T>{});
case 45:
if constexpr (45 < std::tuple_size_v<T>) return f(std::tuple_element_t<45, T>{});
case 46:
if constexpr (46 < std::tuple_size_v<T>) return f(std::tuple_element_t<46, T>{});
case 47:
if constexpr (47 < std::tuple_size_v<T>) return f(std::tuple_element_t<47, T>{});
case 48:
if constexpr (48 < std::tuple_size_v<T>) return f(std::tuple_element_t<48, T>{});
case 49:
if constexpr (49 < std::tuple_size_v<T>) return f(std::tuple_element_t<49, T>{});
case 50:
if constexpr (50 < std::tuple_size_v<T>) return f(std::tuple_element_t<50, T>{});
case 51:
if constexpr (51 < std::tuple_size_v<T>) return f(std::tuple_element_t<51, T>{});
case 52:
if constexpr (52 < std::tuple_size_v<T>) return f(std::tuple_element_t<52, T>{});
case 53:
if constexpr (53 < std::tuple_size_v<T>) return f(std::tuple_element_t<53, T>{});
case 54:
if constexpr (54 < std::tuple_size_v<T>) return f(std::tuple_element_t<54, T>{});
case 55:
if constexpr (55 < std::tuple_size_v<T>) return f(std::tuple_element_t<55, T>{});
case 56:
if constexpr (56 < std::tuple_size_v<T>) return f(std::tuple_element_t<56, T>{});
case 57:
if constexpr (57 < std::tuple_size_v<T>) return f(std::tuple_element_t<57, T>{});
case 58:
if constexpr (58 < std::tuple_size_v<T>) return f(std::tuple_element_t<58, T>{});
case 59:
if constexpr (59 < std::tuple_size_v<T>) return f(std::tuple_element_t<59, T>{});
case 60:
if constexpr (60 < std::tuple_size_v<T>) return f(std::tuple_element_t<60, T>{});
case 61:
if constexpr (61 < std::tuple_size_v<T>) return f(std::tuple_element_t<61, T>{});
case 62:
if constexpr (62 < std::tuple_size_v<T>) return f(std::tuple_element_t<62, T>{});
case 63:
if constexpr (63 < std::tuple_size_v<T>) return f(std::tuple_element_t<63, T>{});
default:
return f(nullptr);
}
}