33 #ifndef __H__COMMON__METAPROGRAMMING_UTIL__
34 #define __H__COMMON__METAPROGRAMMING_UTIL__
98 typedef TypeList< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 > tail;
125 std::cerr <<
"incomplete TVL\n";
130 hd(_hd),
tl(typValList) {}
163 template <
int n,
size_t d>
186 template <
size_t n,
int k>
243 template <
class TType>
a singleton class that returns a new id for each type
Definition: metaprogramming_util.h:228
UniqueTypeIDProvider()
Definition: metaprogramming_util.h:238
size_t new_id()
Definition: metaprogramming_util.h:235
size_t m_id
Definition: metaprogramming_util.h:239
static UniqueTypeIDProvider & inst()
Definition: metaprogramming_util.h:230
function common tail(list, first)
function common head(list, last)
size_t GetUniqueTypeID()
This method associated a unique unsigned integer value with each type.
Definition: metaprogramming_util.h:244
Definition: metaprogramming_util.h:188
@ value
Definition: metaprogramming_util.h:189
Definition: metaprogramming_util.h:60
Definition: metaprogramming_util.h:147
@ value
Definition: metaprogramming_util.h:148
Definition: metaprogramming_util.h:42
@ value
Definition: metaprogramming_util.h:43
int value_type
Definition: metaprogramming_util.h:44
T type
Definition: metaprogramming_util.h:52
Definition: metaprogramming_util.h:48
Definition: metaprogramming_util.h:165
@ value
Definition: metaprogramming_util.h:166
Definition: metaprogramming_util.h:96
TypeList< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 > tail
Definition: metaprogramming_util.h:98
T1 head
Definition: metaprogramming_util.h:97
@ length
Definition: metaprogramming_util.h:99
Definition: metaprogramming_util.h:117
TypeValueList< tail > tl
Definition: metaprogramming_util.h:122
TTypeList::head head
Definition: metaprogramming_util.h:118
TypeValueList(head _hd, TypeValueList< tail > typValList)
Definition: metaprogramming_util.h:128
TTypeList::tail tail
Definition: metaprogramming_util.h:119
head hd
Definition: metaprogramming_util.h:121
TypeValueList()
Definition: metaprogramming_util.h:124