46 #ifndef LIB_META_TYPESEQ_UTIL_H 47 #define LIB_META_TYPESEQ_UTIL_H 68 static_assert (not
sizeof(X),
"Type not found in type-sequence");
72 template<
class X,
class T,
class... TYPES>
76 if constexpr (std::is_same_v<X,T>)
88 template<
class T,
class TYPES>
91 template<
typename T01
114 , T06,T07,T08,T09,T10
115 , T11,T12,T13,T14,T15
116 , T16,T17,T18,T19,T20
120 typedef Types< T01,T02,T03,T04,T05
121 , T06,T07,T08,T09,T10
122 , T11,T12,T13,T14,T15
123 , T16,T17,T18,T19,T20 >
Seq;
134 template<
class H,
class T>
150 template<
class TYPES>
153 template<
typename T01
175 , T06,T07,T08,T09,T10
176 , T11,T12,T13,T14,T15
177 , T16,T17,T18,T19,T20
181 Types< T01,T02,T03,T04,T05
182 , T06,T07,T08,T09,T10
183 , T11,T12,T13,T14,T15
184 , T16,T17,T18,T19,T20
189 typedef Types< T02,T03,T04,T05
190 , T06,T07,T08,T09,T10
191 , T11,T12,T13,T14,T15
192 , T16,T17,T18,T19,T20 >
Tail;
211 template<
class TYPES, u
int i=1>
216 typedef typename Shifted<Tail,i-1>::Type Type;
220 template<
class TYPES>
233 template<
typename...TYPES,
size_t i>
A template metaprogramming technique for manipulating collections of types.
Implementation namespace for support and library code.
constexpr size_t indexOfType()
Find the index of the first incidence of a type in a type-sequence.
Metaprogramming: Helpers for manipulating lists-of-types.