52 #ifndef LIB_META_TYPELIST_MANIP_H 53 #define LIB_META_TYPELIST_MANIP_H 59 #include <sys/types.h> 66 template<
class TYPES,
size_t i>
71 template<
class TY,
class TYPES>
76 template<
class TY,
class TYPES,
size_t i>
86 template<
class TY,
template<
class>
class _TRANS_>
87 struct Apply {
typedef TY List; };
89 template<
class TY,
class TYPES
90 ,
template<
class>
class _TRANS_
93 ,
typename Apply<TYPES,_TRANS_>::List
98 template<
bool,
class T,
class TAIL>
101 template<
class T,
class TAIL>
105 template<
class TYPES
106 ,
template<
class>
class _P_
110 template<
template<
class>
class _P_>
113 template<
class TY,
class TYPES
114 ,
template<
class>
class _P_
124 template<
class TY1,
class TY2>
127 template<
class TY,
class TYPES
132 template<
class TY,
class TYPES>
135 template<
class TY,
class TYPES>
151 template<
class TYPES>
161 template<
class TY,
class TYPES>
163 typedef typename Append< TY,
178 template<
class BASE,
class OVERLAY, u
int i=0>
181 template<
class B,
class BS,
182 class OVERLAY, uint i>
185 typedef typename Splice<BS, OVERLAY, i-1>::Back Back; };
187 template<
class B,
class BS,
193 template<
class B,
class BS>
198 template<
class XX, u
int i>
210 template<
class TYPES>
213 template<
class T,
class TYPES>
244 template<
class T,
class TY>
254 ,
class TY,
class TYPES
269 template<
class TY1,
class TY2>
275 template<
class TY,
class TYPES
297 ,
template<
class>
class _ENUM_>
301 template<
template<
class>
class _ENUM_>
304 template<
class TY,
class TYPES
305 ,
template<
class>
class _ENUM_>
321 template<
class FLAGS>
A template metaprogramming technique for manipulating collections of types.
Implementation namespace for support and library code.