TypelistMacros.h

00001 
00002 // The Loki Library
00003 // Copyright (c) 2001 by Andrei Alexandrescu
00004 // This code accompanies the book:
00005 // Alexandrescu, Andrei. "Modern C++ Design: Generic Programming and Design 
00006 //     Patterns Applied". Copyright (c) 2001. Addison-Wesley.
00007 // Permission to use, copy, modify, distribute and sell this software for any 
00008 //     purpose is hereby granted without fee, provided that the above copyright 
00009 //     notice appear in all copies and that both that copyright notice and this 
00010 //     permission notice appear in supporting documentation.
00011 // The author or Addison-Welsey Longman make no representations about the 
00012 //     suitability of this software for any purpose. It is provided "as is" 
00013 //     without express or implied warranty.
00015 #ifndef LOKI_TYPELISTMACROS_INC_
00016 #define LOKI_TYPELISTMACROS_INC_
00017 
00018 // $Id: TypelistMacros.h 749 2006-10-17 19:49:26Z syntheticpp $
00019 
00020 
00021 //#define LOKI_DISABLE_TYPELIST_MACROS
00022 #ifndef LOKI_DISABLE_TYPELIST_MACROS
00023 
00025 // macros LOKI_TYPELIST_1, LOKI_TYPELIST_2, ... LOKI_TYPELIST_50
00026 // Each takes a number of arguments equal to its numeric suffix
00027 // The arguments are type names. LOKI_TYPELIST_NN generates a typelist containing 
00028 //     all types passed as arguments, in that order.
00029 // Example: LOKI_TYPELIST_2(char, int) generates a type containing char and int.
00031 
00032 #define LOKI_TYPELIST_1(T1) ::Loki::Typelist<T1, ::Loki::NullType>
00033 
00034 #define LOKI_TYPELIST_2(T1, T2) ::Loki::Typelist<T1, LOKI_TYPELIST_1(T2) >
00035 
00036 #define LOKI_TYPELIST_3(T1, T2, T3) ::Loki::Typelist<T1, LOKI_TYPELIST_2(T2, T3) >
00037 
00038 #define LOKI_TYPELIST_4(T1, T2, T3, T4) \
00039     ::Loki::Typelist<T1, LOKI_TYPELIST_3(T2, T3, T4) >
00040 
00041 #define LOKI_TYPELIST_5(T1, T2, T3, T4, T5) \
00042     ::Loki::Typelist<T1, LOKI_TYPELIST_4(T2, T3, T4, T5) >
00043 
00044 #define LOKI_TYPELIST_6(T1, T2, T3, T4, T5, T6) \
00045     ::Loki::Typelist<T1, LOKI_TYPELIST_5(T2, T3, T4, T5, T6) >
00046 
00047 #define LOKI_TYPELIST_7(T1, T2, T3, T4, T5, T6, T7) \
00048     ::Loki::Typelist<T1, LOKI_TYPELIST_6(T2, T3, T4, T5, T6, T7) >
00049 
00050 #define LOKI_TYPELIST_8(T1, T2, T3, T4, T5, T6, T7, T8) \
00051     ::Loki::Typelist<T1, LOKI_TYPELIST_7(T2, T3, T4, T5, T6, T7, T8) >
00052 
00053 #define LOKI_TYPELIST_9(T1, T2, T3, T4, T5, T6, T7, T8, T9) \
00054     ::Loki::Typelist<T1, LOKI_TYPELIST_8(T2, T3, T4, T5, T6, T7, T8, T9) >
00055 
00056 #define LOKI_TYPELIST_10(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) \
00057     ::Loki::Typelist<T1, LOKI_TYPELIST_9(T2, T3, T4, T5, T6, T7, T8, T9, T10) >
00058 
00059 #define LOKI_TYPELIST_11(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) \
00060     ::Loki::Typelist<T1, LOKI_TYPELIST_10(T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) >
00061 
00062 #define LOKI_TYPELIST_12(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) \
00063     ::Loki::Typelist<T1, LOKI_TYPELIST_11(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00064         T11, T12) >
00065 
00066 #define LOKI_TYPELIST_13(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) \
00067     ::Loki::Typelist<T1, LOKI_TYPELIST_12(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00068         T11, T12, T13) >
00069 
00070 #define LOKI_TYPELIST_14(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00071         T11, T12, T13, T14) \
00072     ::Loki::Typelist<T1, LOKI_TYPELIST_13(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00073         T11, T12, T13, T14) >
00074 
00075 #define LOKI_TYPELIST_15(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00076         T11, T12, T13, T14, T15) \
00077     ::Loki::Typelist<T1, LOKI_TYPELIST_14(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00078         T11, T12, T13, T14, T15) >
00079 
00080 #define LOKI_TYPELIST_16(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00081         T11, T12, T13, T14, T15, T16) \
00082     ::Loki::Typelist<T1, LOKI_TYPELIST_15(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00083         T11, T12, T13, T14, T15, T16) >
00084 
00085 #define LOKI_TYPELIST_17(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00086         T11, T12, T13, T14, T15, T16, T17) \
00087     ::Loki::Typelist<T1, LOKI_TYPELIST_16(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00088         T11, T12, T13, T14, T15, T16, T17) >
00089 
00090 #define LOKI_TYPELIST_18(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00091         T11, T12, T13, T14, T15, T16, T17, T18) \
00092     ::Loki::Typelist<T1, LOKI_TYPELIST_17(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00093         T11, T12, T13, T14, T15, T16, T17, T18) >
00094 
00095 #define LOKI_TYPELIST_19(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00096         T11, T12, T13, T14, T15, T16, T17, T18, T19) \
00097     ::Loki::Typelist<T1, LOKI_TYPELIST_18(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00098         T11, T12, T13, T14, T15, T16, T17, T18, T19) >
00099 
00100 #define LOKI_TYPELIST_20(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00101         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) \
00102     ::Loki::Typelist<T1, LOKI_TYPELIST_19(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00103         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) >
00104 
00105 #define LOKI_TYPELIST_21(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00106         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) \
00107     ::Loki::Typelist<T1, LOKI_TYPELIST_20(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00108         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) >
00109 
00110 #define LOKI_TYPELIST_22(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00111         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) \
00112     ::Loki::Typelist<T1, LOKI_TYPELIST_21(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00113         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) >
00114 
00115 #define LOKI_TYPELIST_23(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00116         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) \
00117     ::Loki::Typelist<T1, LOKI_TYPELIST_22(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00118         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) >
00119 
00120 #define LOKI_TYPELIST_24(T1, 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     ::Loki::Typelist<T1, LOKI_TYPELIST_23(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00123         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) >
00124 
00125 #define LOKI_TYPELIST_25(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00126         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25) \
00127     ::Loki::Typelist<T1, LOKI_TYPELIST_24(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00128         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00129         T21, T22, T23, T24, T25) >
00130 
00131 #define LOKI_TYPELIST_26(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00132         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00133         T21, T22, T23, T24, T25, T26) \
00134     ::Loki::Typelist<T1, LOKI_TYPELIST_25(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00135         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00136         T21, T22, T23, T24, T25, T26) >
00137 
00138 #define LOKI_TYPELIST_27(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00139         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00140         T21, T22, T23, T24, T25, T26, T27) \
00141     ::Loki::Typelist<T1, LOKI_TYPELIST_26(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00142         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00143         T21, T22, T23, T24, T25, T26, T27) >
00144 
00145 #define LOKI_TYPELIST_28(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00146         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00147         T21, T22, T23, T24, T25, T26, T27, T28) \
00148     ::Loki::Typelist<T1, LOKI_TYPELIST_27(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00149         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00150         T21, T22, T23, T24, T25, T26, T27, T28) >
00151 
00152 #define LOKI_TYPELIST_29(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00153         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00154         T21, T22, T23, T24, T25, T26, T27, T28, T29) \
00155     ::Loki::Typelist<T1, LOKI_TYPELIST_28(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00156         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00157         T21, T22, T23, T24, T25, T26, T27, T28, T29) >
00158 
00159 #define LOKI_TYPELIST_30(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00160         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00161         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30) \
00162     ::Loki::Typelist<T1, LOKI_TYPELIST_29(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00163         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00164         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30) >
00165 
00166 #define LOKI_TYPELIST_31(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00167         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00168         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31) \
00169     ::Loki::Typelist<T1, LOKI_TYPELIST_30(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00170         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00171         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31) >
00172 
00173 #define LOKI_TYPELIST_32(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00174         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00175         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) \
00176     ::Loki::Typelist<T1, LOKI_TYPELIST_31(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00177         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00178         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) >
00179 
00180 #define LOKI_TYPELIST_33(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00181         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00182         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33) \
00183     ::Loki::Typelist<T1, LOKI_TYPELIST_32(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00184         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00185         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33) >
00186 
00187 #define LOKI_TYPELIST_34(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00188         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00189         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34) \
00190     ::Loki::Typelist<T1, LOKI_TYPELIST_33(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00191         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00192         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34) >
00193 
00194 #define LOKI_TYPELIST_35(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00195         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00196         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00197         T31, T32, T33, T34, T35) \
00198     ::Loki::Typelist<T1, LOKI_TYPELIST_34(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00199         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00200         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00201         T31, T32, T33, T34, T35) >
00202 
00203 #define LOKI_TYPELIST_36(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00204         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00205         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00206         T31, T32, T33, T34, T35, T36) \
00207     ::Loki::Typelist<T1, LOKI_TYPELIST_35(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00208         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00209         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00210         T31, T32, T33, T34, T35, T36) >
00211 
00212 #define LOKI_TYPELIST_37(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00213         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00214         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00215         T31, T32, T33, T34, T35, T36, T37) \
00216     ::Loki::Typelist<T1, LOKI_TYPELIST_36(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00217         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00218         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00219         T31, T32, T33, T34, T35, T36, T37) >
00220 
00221 #define LOKI_TYPELIST_38(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00222         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00223         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00224         T31, T32, T33, T34, T35, T36, T37, T38) \
00225     ::Loki::Typelist<T1, LOKI_TYPELIST_37(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00226         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00227         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00228         T31, T32, T33, T34, T35, T36, T37, T38) >
00229 
00230 #define LOKI_TYPELIST_39(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00231         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00232         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00233         T31, T32, T33, T34, T35, T36, T37, T38, T39) \
00234     ::Loki::Typelist<T1, LOKI_TYPELIST_38(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00235         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00236         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00237         T31, T32, T33, T34, T35, T36, T37, T38, T39) >
00238 
00239 #define LOKI_TYPELIST_40(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00240         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00241         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00242         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40) \
00243     ::Loki::Typelist<T1, LOKI_TYPELIST_39(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00244         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00245         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00246         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40) >
00247 
00248 #define LOKI_TYPELIST_41(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00249         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00250         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00251         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41) \
00252     ::Loki::Typelist<T1, LOKI_TYPELIST_40(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00253         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00254         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00255         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41) >
00256 
00257 #define LOKI_TYPELIST_42(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00258         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00259         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00260         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42) \
00261     ::Loki::Typelist<T1, LOKI_TYPELIST_41(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00262         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00263         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00264         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42) >
00265 
00266 #define LOKI_TYPELIST_43(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00267         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00268         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00269         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43) \
00270     ::Loki::Typelist<T1, LOKI_TYPELIST_42(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00271         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00272         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00273         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43) >
00274 
00275 #define LOKI_TYPELIST_44(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00276         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00277         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00278         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44) \
00279     ::Loki::Typelist<T1, LOKI_TYPELIST_43(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00280         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00281         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00282         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44) >
00283 
00284 #define LOKI_TYPELIST_45(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00285         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00286         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00287         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00288         T41, T42, T43, T44, T45) \
00289     ::Loki::Typelist<T1, LOKI_TYPELIST_44(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00290         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00291         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00292         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00293         T41, T42, T43, T44, T45) >
00294 
00295 #define LOKI_TYPELIST_46(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00296         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00297         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00298         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00299         T41, T42, T43, T44, T45, T46) \
00300     ::Loki::Typelist<T1, LOKI_TYPELIST_45(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00301         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00302         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00303         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00304         T41, T42, T43, T44, T45, T46) >
00305 
00306 #define LOKI_TYPELIST_47(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00307         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00308         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00309         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00310         T41, T42, T43, T44, T45, T46, T47) \
00311     ::Loki::Typelist<T1, LOKI_TYPELIST_46(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00312         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00313         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00314         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00315         T41, T42, T43, T44, T45, T46, T47) >
00316 
00317 #define LOKI_TYPELIST_48(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00318         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00319         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00320         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00321         T41, T42, T43, T44, T45, T46, T47, T48) \
00322     ::Loki::Typelist<T1, LOKI_TYPELIST_47(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00323         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00324         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00325         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00326         T41, T42, T43, T44, T45, T46, T47, T48) >
00327 
00328 #define LOKI_TYPELIST_49(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00329         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00330         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00331         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00332         T41, T42, T43, T44, T45, T46, T47, T48, T49) \
00333     ::Loki::Typelist<T1, LOKI_TYPELIST_48(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00334         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00335         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00336         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00337         T41, T42, T43, T44, T45, T46, T47, T48, T49) >
00338 
00339 #define LOKI_TYPELIST_50(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00340         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00341         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00342         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00343         T41, T42, T43, T44, T45, T46, T47, T48, T49, T50) \
00344     ::Loki::Typelist<T1, LOKI_TYPELIST_49(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
00345         T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
00346         T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
00347         T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
00348         T41, T42, T43, T44, T45, T46, T47, T48, T49, T50) >
00349 
00350 #endif //LOKI_DISABLE_TYPELIST_MACROS
00351 
00352 #endif // end file guardian
00353 

Generated on Sun Feb 25 16:52:28 2007 for Loki by  doxygen 1.5.1-p1