43 #ifndef LIB_META_TYPELIST_MANIP_H 44 #define LIB_META_TYPELIST_MANIP_H 50 #include <sys/types.h> 57 template<
class TYPES,
size_t i>
62 template<
class TY,
class TYPES>
67 template<
class TY,
class TYPES,
size_t i>
77 template<
class TY,
template<
class>
class _TRANS_>
78 struct Apply {
typedef TY List; };
80 template<
class TY,
class TYPES
81 ,
template<
class>
class _TRANS_
84 ,
typename Apply<TYPES,_TRANS_>::List
89 template<
bool,
class T,
class TAIL>
92 template<
class T,
class TAIL>
97 ,
template<
class>
class _P_
101 template<
template<
class>
class _P_>
104 template<
class TY,
class TYPES
105 ,
template<
class>
class _P_
115 template<
class TY1,
class TY2>
118 template<
class TY,
class TYPES
123 template<
class TY,
class TYPES>
126 template<
class TY,
class TYPES>
142 template<
class TYPES>
152 template<
class TY,
class TYPES>
154 typedef typename Append< TY,
169 template<
class BASE,
class OVERLAY, u
int i=0>
172 template<
class B,
class BS,
173 class OVERLAY, uint i>
176 typedef typename Splice<BS, OVERLAY, i-1>::Back Back; };
178 template<
class B,
class BS,
184 template<
class B,
class BS>
189 template<
class XX, u
int i>
201 template<
class TYPES>
204 template<
class T,
class TYPES>
235 template<
class T,
class TY>
245 ,
class TY,
class TYPES
260 template<
class TY1,
class TY2>
266 template<
class TY,
class TYPES
288 ,
template<
class>
class _ENUM_>
292 template<
template<
class>
class _ENUM_>
295 template<
class TY,
class TYPES
296 ,
template<
class>
class _ENUM_>
312 template<
class FLAGS>
A template metaprogramming technique for manipulating collections of types.
Implementation namespace for support and library code.