00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __ktypelist_h__
00025 #define __ktypelist_h__
00026
00027
00028
00029
00030 #define K_TYPELIST_1(T1) KTypeList<T1, ::KDE::NullType>
00031
00032 #define K_TYPELIST_2(T1, T2) KTypeList<T1, K_TYPELIST_1(T2) >
00033
00034 #define K_TYPELIST_3(T1, T2, T3) KTypeList<T1, K_TYPELIST_2(T2, T3) >
00035
00036 #define K_TYPELIST_4(T1, T2, T3, T4) \
00037 KTypeList<T1, K_TYPELIST_3(T2, T3, T4) >
00038
00039 #define K_TYPELIST_5(T1, T2, T3, T4, T5) \
00040 KTypeList<T1, K_TYPELIST_4(T2, T3, T4, T5) >
00041
00042 #define K_TYPELIST_6(T1, T2, T3, T4, T5, T6) \
00043 KTypeList<T1, K_TYPELIST_5(T2, T3, T4, T5, T6) >
00044
00045 #define K_TYPELIST_7(T1, T2, T3, T4, T5, T6, T7) \
00046 KTypeList<T1, K_TYPELIST_6(T2, T3, T4, T5, T6, T7) >
00047
00048 #define K_TYPELIST_8(T1, T2, T3, T4, T5, T6, T7, T8) \
00049 KTypeList<T1, K_TYPELIST_7(T2, T3, T4, T5, T6, T7, T8) >
00050
00051 #define K_TYPELIST_9(T1, T2, T3, T4, T5, T6, T7, T8, T9) \
00052 KTypeList<T1, K_TYPELIST_8(T2, T3, T4, T5, T6, T7, T8, T9) >
00053
00054 #define K_TYPELIST_10(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) \
00055 KTypeList<T1, K_TYPELIST_9(T2, T3, T4, T5, T6, T7, T8, T9, T10) >
00056
00057 #define K_TYPELIST_11(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) \
00058 KTypeList<T1, K_TYPELIST_10(T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) >
00059
00060 #define K_TYPELIST_12(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) \
00061 KTypeList<T1, K_TYPELIST_11(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00062 T11, T12) >
00063
00064 #define K_TYPELIST_13(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) \
00065 KTypeList<T1, K_TYPELIST_12(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00066 T11, T12, T13) >
00067
00068 #define K_TYPELIST_14(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00069 T11, T12, T13, T14) \
00070 KTypeList<T1, K_TYPELIST_13(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00071 T11, T12, T13, T14) >
00072
00073 #define K_TYPELIST_15(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00074 T11, T12, T13, T14, T15) \
00075 KTypeList<T1, K_TYPELIST_14(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00076 T11, T12, T13, T14, T15) >
00077
00078 #define K_TYPELIST_16(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00079 T11, T12, T13, T14, T15, T16) \
00080 KTypeList<T1, K_TYPELIST_15(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00081 T11, T12, T13, T14, T15, T16) >
00082
00083 #define K_TYPELIST_17(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00084 T11, T12, T13, T14, T15, T16, T17) \
00085 KTypeList<T1, K_TYPELIST_16(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00086 T11, T12, T13, T14, T15, T16, T17) >
00087
00088 #define K_TYPELIST_18(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00089 T11, T12, T13, T14, T15, T16, T17, T18) \
00090 KTypeList<T1, K_TYPELIST_17(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00091 T11, T12, T13, T14, T15, T16, T17, T18) >
00092
00093 #define K_TYPELIST_19(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00094 T11, T12, T13, T14, T15, T16, T17, T18, T19) \
00095 KTypeList<T1, K_TYPELIST_18(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00096 T11, T12, T13, T14, T15, T16, T17, T18, T19) >
00097
00098 #define K_TYPELIST_20(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00099 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) \
00100 KTypeList<T1, K_TYPELIST_19(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00101 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) >
00102
00103 #define K_TYPELIST_21(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00104 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) \
00105 KTypeList<T1, K_TYPELIST_20(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00106 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) >
00107
00108 #define K_TYPELIST_22(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00109 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) \
00110 KTypeList<T1, K_TYPELIST_21(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00111 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) >
00112
00113 #define K_TYPELIST_23(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00114 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) \
00115 KTypeList<T1, K_TYPELIST_22(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00116 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) >
00117
00118 #define K_TYPELIST_24(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00119 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) \
00120 KTypeList<T1, K_TYPELIST_23(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00121 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) >
00122
00123 #define K_TYPELIST_25(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00124 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25) \
00125 KTypeList<T1, K_TYPELIST_24(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00126 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00127 T21, T22, T23, T24, T25) >
00128
00129 #define K_TYPELIST_26(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00130 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00131 T21, T22, T23, T24, T25, T26) \
00132 KTypeList<T1, K_TYPELIST_25(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00133 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00134 T21, T22, T23, T24, T25, T26) >
00135
00136 #define K_TYPELIST_27(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00137 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00138 T21, T22, T23, T24, T25, T26, T27) \
00139 KTypeList<T1, K_TYPELIST_26(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00140 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00141 T21, T22, T23, T24, T25, T26, T27) >
00142
00143 #define K_TYPELIST_28(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00144 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00145 T21, T22, T23, T24, T25, T26, T27, T28) \
00146 KTypeList<T1, K_TYPELIST_27(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00147 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00148 T21, T22, T23, T24, T25, T26, T27, T28) >
00149
00150 #define K_TYPELIST_29(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00151 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00152 T21, T22, T23, T24, T25, T26, T27, T28, T29) \
00153 KTypeList<T1, K_TYPELIST_28(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00154 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00155 T21, T22, T23, T24, T25, T26, T27, T28, T29) >
00156
00157 #define K_TYPELIST_30(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00158 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00159 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30) \
00160 KTypeList<T1, K_TYPELIST_29(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00161 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00162 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30) >
00163
00164 #define K_TYPELIST_31(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00165 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00166 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31) \
00167 KTypeList<T1, K_TYPELIST_30(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00168 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00169 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31) >
00170
00171 #define K_TYPELIST_32(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00172 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00173 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) \
00174 KTypeList<T1, K_TYPELIST_31(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00175 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00176 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) >
00177
00178 #define K_TYPELIST_33(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00179 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00180 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33) \
00181 KTypeList<T1, K_TYPELIST_32(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00182 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00183 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33) >
00184
00185 #define K_TYPELIST_34(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00186 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00187 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34) \
00188 KTypeList<T1, K_TYPELIST_33(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00189 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00190 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34) >
00191
00192 #define K_TYPELIST_35(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00193 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00194 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00195 T31, T32, T33, T34, T35) \
00196 KTypeList<T1, K_TYPELIST_34(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00197 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00198 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00199 T31, T32, T33, T34, T35) >
00200
00201 #define K_TYPELIST_36(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00202 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00203 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00204 T31, T32, T33, T34, T35, T36) \
00205 KTypeList<T1, K_TYPELIST_35(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00206 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00207 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00208 T31, T32, T33, T34, T35, T36) >
00209
00210 #define K_TYPELIST_37(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00211 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00212 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00213 T31, T32, T33, T34, T35, T36, T37) \
00214 KTypeList<T1, K_TYPELIST_36(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00215 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00216 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00217 T31, T32, T33, T34, T35, T36, T37) >
00218
00219 #define K_TYPELIST_38(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00220 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00221 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00222 T31, T32, T33, T34, T35, T36, T37, T38) \
00223 KTypeList<T1, K_TYPELIST_37(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00224 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00225 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00226 T31, T32, T33, T34, T35, T36, T37, T38) >
00227
00228 #define K_TYPELIST_39(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00229 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00230 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00231 T31, T32, T33, T34, T35, T36, T37, T38, T39) \
00232 KTypeList<T1, K_TYPELIST_38(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00233 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00234 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00235 T31, T32, T33, T34, T35, T36, T37, T38, T39) >
00236
00237 #define K_TYPELIST_40(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00238 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00239 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00240 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40) \
00241 KTypeList<T1, K_TYPELIST_39(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00242 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00243 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00244 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40) >
00245
00246 #define K_TYPELIST_41(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00247 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00248 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00249 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41) \
00250 KTypeList<T1, K_TYPELIST_40(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00251 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00252 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00253 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41) >
00254
00255 #define K_TYPELIST_42(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00256 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00257 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00258 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42) \
00259 KTypeList<T1, K_TYPELIST_41(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00260 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00261 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00262 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42) >
00263
00264 #define K_TYPELIST_43(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00265 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00266 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00267 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43) \
00268 KTypeList<T1, K_TYPELIST_42(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00269 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00270 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00271 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43) >
00272
00273 #define K_TYPELIST_44(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00274 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00275 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00276 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44) \
00277 KTypeList<T1, K_TYPELIST_43(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00278 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00279 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00280 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44) >
00281
00282 #define K_TYPELIST_45(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00283 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00284 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00285 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00286 T41, T42, T43, T44, T45) \
00287 KTypeList<T1, K_TYPELIST_44(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00288 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00289 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00290 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00291 T41, T42, T43, T44, T45) >
00292
00293 #define K_TYPELIST_46(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00294 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00295 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00296 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00297 T41, T42, T43, T44, T45, T46) \
00298 KTypeList<T1, K_TYPELIST_45(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00299 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00300 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00301 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00302 T41, T42, T43, T44, T45) >
00303
00304 #define K_TYPELIST_47(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00305 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00306 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00307 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00308 T41, T42, T43, T44, T45, T46, T47) \
00309 KTypeList<T1, K_TYPELIST_46(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00310 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00311 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00312 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00313 T41, T42, T43, T44, T45, T46, T47) >
00314
00315 #define K_TYPELIST_48(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00316 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00317 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00318 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00319 T41, T42, T43, T44, T45, T46, T47, T48) \
00320 KTypeList<T1, K_TYPELIST_47(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00321 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00322 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00323 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00324 T41, T42, T43, T44, T45, T46, T47, T48) >
00325
00326 #define K_TYPELIST_49(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00327 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00328 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00329 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00330 T41, T42, T43, T44, T45, T46, T47, T48, T49) \
00331 KTypeList<T1, K_TYPELIST_48(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00332 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00333 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00334 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00335 T41, T42, T43, T44, T45, T46, T47, T48, T49) >
00336
00337 #define K_TYPELIST_50(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00338 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00339 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00340 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00341 T41, T42, T43, T44, T45, T46, T47, T48, T49, T50) \
00342 KTypeList<T1, K_TYPELIST_49(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00343 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00344 T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00345 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00346 T41, T42, T43, T44, T45, T46, T47, T48, T49, T50) >
00347
00348 namespace KDE
00349 {
00350 class NullType;
00351 };
00352
00360 template <class T, class U>
00361 struct KTypeList
00362 {
00364 typedef T Head;
00366 typedef U Tail;
00367 };
00368
00369
00370 template <class TList> struct KTypeListLength;
00371
00372 template <>
00373 struct KTypeListLength<KDE::NullType>
00374 {
00378 enum { Value = 0 };
00379 };
00380
00385 template <class T, class U>
00386 struct KTypeListLength< KTypeList<T, U> >
00387 {
00391 enum { Value = 1 + KTypeListLength<U>::Value };
00392 };
00393
00394 #endif
00395