12 #ifndef TYPE_LIST_H_INCLUDED
13 #define TYPE_LIST_H_INCLUDED
15 #include <Pb/meta_fwd.h>
16 #include <Pb/type_node.h>
78 template <
typename T0,
typename T1 = MT,
typename T2 = MT,
typename T3 = MT,
79 typename T4 = MT,
typename T5 = MT,
typename T6 = MT,
typename T7 = MT,
80 typename T8 = MT,
typename T9 = MT,
typename T10 = MT,
typename T11 = MT,
81 typename T12 = MT,
typename T13 = MT,
typename T14 = MT,
typename T15 = MT,
82 typename T16 = MT,
typename T17 = MT,
typename T18 = MT,
typename T19 = MT,
83 typename T20 = MT,
typename T21 = MT,
typename T22 = MT,
typename T23 = MT,
84 typename T24 = MT,
typename T25 = MT,
typename T26 = MT,
typename T27 = MT,
85 typename T28 = MT,
typename T29 = MT,
typename T30 = MT,
typename T31 = MT
97 #define DECLARE_TYPE_LIST TMP_ARRAY_32(TypeNode<T), MT TMP_REPEAT_32(>)
98 typedef DECLARE_TYPE_LIST type;
121 #define tmp_ALCHEMY_TYPELIST_DEF(S) \
122 template <TMP_ARRAY_##S(typename T)> \
123 struct TypeList<TMP_ARRAY_##S(T)> \
126 typedef TMP_ARRAY_##S(TypeNode<T), MT TMP_REPEAT_##S(>) type; \
130 tmp_ALCHEMY_TYPELIST_DEF(1);
131 tmp_ALCHEMY_TYPELIST_DEF(2);
132 tmp_ALCHEMY_TYPELIST_DEF(3);
133 tmp_ALCHEMY_TYPELIST_DEF(4);
134 tmp_ALCHEMY_TYPELIST_DEF(5);
135 tmp_ALCHEMY_TYPELIST_DEF(6);
136 tmp_ALCHEMY_TYPELIST_DEF(7);
137 tmp_ALCHEMY_TYPELIST_DEF(8);
138 tmp_ALCHEMY_TYPELIST_DEF(9);
139 tmp_ALCHEMY_TYPELIST_DEF(10);
140 tmp_ALCHEMY_TYPELIST_DEF(11);
141 tmp_ALCHEMY_TYPELIST_DEF(12);
142 tmp_ALCHEMY_TYPELIST_DEF(13);
143 tmp_ALCHEMY_TYPELIST_DEF(14);
144 tmp_ALCHEMY_TYPELIST_DEF(15);
145 tmp_ALCHEMY_TYPELIST_DEF(16);
146 tmp_ALCHEMY_TYPELIST_DEF(17);
147 tmp_ALCHEMY_TYPELIST_DEF(18);
148 tmp_ALCHEMY_TYPELIST_DEF(19);
149 tmp_ALCHEMY_TYPELIST_DEF(20);
150 tmp_ALCHEMY_TYPELIST_DEF(21);
151 tmp_ALCHEMY_TYPELIST_DEF(22);
152 tmp_ALCHEMY_TYPELIST_DEF(23);
153 tmp_ALCHEMY_TYPELIST_DEF(24);
154 tmp_ALCHEMY_TYPELIST_DEF(25);
155 tmp_ALCHEMY_TYPELIST_DEF(26);
156 tmp_ALCHEMY_TYPELIST_DEF(27);
157 tmp_ALCHEMY_TYPELIST_DEF(28);
158 tmp_ALCHEMY_TYPELIST_DEF(29);
159 tmp_ALCHEMY_TYPELIST_DEF(30);
160 tmp_ALCHEMY_TYPELIST_DEF(31);
162 #undef tmp_ALCHEMY_TYPELIST_DEF