summaryrefslogtreecommitdiffstats
path: root/kdecore/ktypelist.h
diff options
context:
space:
mode:
Diffstat (limited to 'kdecore/ktypelist.h')
-rw-r--r--kdecore/ktypelist.h473
1 files changed, 0 insertions, 473 deletions
diff --git a/kdecore/ktypelist.h b/kdecore/ktypelist.h
deleted file mode 100644
index 343cee2ab..000000000
--- a/kdecore/ktypelist.h
+++ /dev/null
@@ -1,473 +0,0 @@
-/*
- This work is derived from:
- ----
- The Loki Library
- Copyright (c) 2001 by Andrei Alexandrescu
- This code accompanies the book:
- Alexandrescu, Andrei. "Modern C++ Design: Generic Programming and Design
- Patterns Applied". Copyright (c) 2001. Addison-Wesley.
- Permission to use, copy, modify, distribute and sell this software for any
- purpose is hereby granted without fee, provided that the above copyright
- notice appear in all copies and that both that copyright notice and this
- permission notice appear in supporting documentation.
- The author or Addison-Welsey Longman make no representations about the
- suitability of this software for any purpose. It is provided "as is"
- without express or implied warranty.
- ----
-
- Simon: Actually we could put a lot more of typelist stuff in here, like
- real list management (append, erase, ...) or other things, but
- for now I just added the basic typelist and a length template,
- to keep compile time at a minimum. If we really need more we can
- still add it :)
- Holger: Now we add a Template to create the TypeList
-*/
-#ifndef __ktypelist_h__
-#define __ktypelist_h__
-
-// Convenience macros for transforming flat type enumerations into the
-// recursive typelist structure
-
-#define K_TYPELIST_1(T1) KTypeList<T1, ::KDE::NullType>
-
-#define K_TYPELIST_2(T1, T2) KTypeList<T1, K_TYPELIST_1(T2) >
-
-#define K_TYPELIST_3(T1, T2, T3) KTypeList<T1, K_TYPELIST_2(T2, T3) >
-
-#define K_TYPELIST_4(T1, T2, T3, T4) \
- KTypeList<T1, K_TYPELIST_3(T2, T3, T4) >
-
-#define K_TYPELIST_5(T1, T2, T3, T4, T5) \
- KTypeList<T1, K_TYPELIST_4(T2, T3, T4, T5) >
-
-#define K_TYPELIST_6(T1, T2, T3, T4, T5, T6) \
- KTypeList<T1, K_TYPELIST_5(T2, T3, T4, T5, T6) >
-
-#define K_TYPELIST_7(T1, T2, T3, T4, T5, T6, T7) \
- KTypeList<T1, K_TYPELIST_6(T2, T3, T4, T5, T6, T7) >
-
-#define K_TYPELIST_8(T1, T2, T3, T4, T5, T6, T7, T8) \
- KTypeList<T1, K_TYPELIST_7(T2, T3, T4, T5, T6, T7, T8) >
-
-#define K_TYPELIST_9(T1, T2, T3, T4, T5, T6, T7, T8, T9) \
- KTypeList<T1, K_TYPELIST_8(T2, T3, T4, T5, T6, T7, T8, T9) >
-
-#define K_TYPELIST_10(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) \
- KTypeList<T1, K_TYPELIST_9(T2, T3, T4, T5, T6, T7, T8, T9, T10) >
-
-#define K_TYPELIST_11(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) \
- KTypeList<T1, K_TYPELIST_10(T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) >
-
-#define K_TYPELIST_12(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) \
- KTypeList<T1, K_TYPELIST_11(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12) >
-
-#define K_TYPELIST_13(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) \
- KTypeList<T1, K_TYPELIST_12(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13) >
-
-#define K_TYPELIST_14(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14) \
- KTypeList<T1, K_TYPELIST_13(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14) >
-
-#define K_TYPELIST_15(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15) \
- KTypeList<T1, K_TYPELIST_14(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15) >
-
-#define K_TYPELIST_16(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16) \
- KTypeList<T1, K_TYPELIST_15(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16) >
-
-#define K_TYPELIST_17(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17) \
- KTypeList<T1, K_TYPELIST_16(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17) >
-
-#define K_TYPELIST_18(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18) \
- KTypeList<T1, K_TYPELIST_17(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18) >
-
-#define K_TYPELIST_19(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19) \
- KTypeList<T1, K_TYPELIST_18(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19) >
-
-#define K_TYPELIST_20(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) \
- KTypeList<T1, K_TYPELIST_19(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) >
-
-#define K_TYPELIST_21(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) \
- KTypeList<T1, K_TYPELIST_20(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) >
-
-#define K_TYPELIST_22(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) \
- KTypeList<T1, K_TYPELIST_21(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) >
-
-#define K_TYPELIST_23(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) \
- KTypeList<T1, K_TYPELIST_22(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) >
-
-#define K_TYPELIST_24(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) \
- KTypeList<T1, K_TYPELIST_23(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) >
-
-#define K_TYPELIST_25(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25) \
- KTypeList<T1, K_TYPELIST_24(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25) >
-
-#define K_TYPELIST_26(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26) \
- KTypeList<T1, K_TYPELIST_25(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26) >
-
-#define K_TYPELIST_27(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27) \
- KTypeList<T1, K_TYPELIST_26(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27) >
-
-#define K_TYPELIST_28(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28) \
- KTypeList<T1, K_TYPELIST_27(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28) >
-
-#define K_TYPELIST_29(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29) \
- KTypeList<T1, K_TYPELIST_28(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29) >
-
-#define K_TYPELIST_30(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30) \
- KTypeList<T1, K_TYPELIST_29(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30) >
-
-#define K_TYPELIST_31(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31) \
- KTypeList<T1, K_TYPELIST_30(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31) >
-
-#define K_TYPELIST_32(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) \
- KTypeList<T1, K_TYPELIST_31(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) >
-
-#define K_TYPELIST_33(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33) \
- KTypeList<T1, K_TYPELIST_32(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33) >
-
-#define K_TYPELIST_34(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34) \
- KTypeList<T1, K_TYPELIST_33(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34) >
-
-#define K_TYPELIST_35(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35) \
- KTypeList<T1, K_TYPELIST_34(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35) >
-
-#define K_TYPELIST_36(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36) \
- KTypeList<T1, K_TYPELIST_35(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36) >
-
-#define K_TYPELIST_37(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37) \
- KTypeList<T1, K_TYPELIST_36(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37) >
-
-#define K_TYPELIST_38(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38) \
- KTypeList<T1, K_TYPELIST_37(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38) >
-
-#define K_TYPELIST_39(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39) \
- KTypeList<T1, K_TYPELIST_38(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39) >
-
-#define K_TYPELIST_40(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40) \
- KTypeList<T1, K_TYPELIST_39(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40) >
-
-#define K_TYPELIST_41(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41) \
- KTypeList<T1, K_TYPELIST_40(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41) >
-
-#define K_TYPELIST_42(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42) \
- KTypeList<T1, K_TYPELIST_41(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42) >
-
-#define K_TYPELIST_43(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43) \
- KTypeList<T1, K_TYPELIST_42(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43) >
-
-#define K_TYPELIST_44(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44) \
- KTypeList<T1, K_TYPELIST_43(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44) >
-
-#define K_TYPELIST_45(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
- T41, T42, T43, T44, T45) \
- KTypeList<T1, K_TYPELIST_44(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
- T41, T42, T43, T44, T45) >
-
-#define K_TYPELIST_46(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
- T41, T42, T43, T44, T45, T46) \
- KTypeList<T1, K_TYPELIST_45(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
- T41, T42, T43, T44, T45, T46) >
-
-#define K_TYPELIST_47(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
- T41, T42, T43, T44, T45, T46, T47) \
- KTypeList<T1, K_TYPELIST_46(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
- T41, T42, T43, T44, T45, T46, T47) >
-
-#define K_TYPELIST_48(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
- T41, T42, T43, T44, T45, T46, T47, T48) \
- KTypeList<T1, K_TYPELIST_47(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
- T41, T42, T43, T44, T45, T46, T47, T48) >
-
-#define K_TYPELIST_49(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
- T41, T42, T43, T44, T45, T46, T47, T48, T49) \
- KTypeList<T1, K_TYPELIST_48(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
- T41, T42, T43, T44, T45, T46, T47, T48, T49) >
-
-#define K_TYPELIST_50(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
- T41, T42, T43, T44, T45, T46, T47, T48, T49, T50) \
- KTypeList<T1, K_TYPELIST_49(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
- T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
- T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
- T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
- T41, T42, T43, T44, T45, T46, T47, T48, T49, T50) >
-
-namespace KDE
-{
- class NullType;
-}
-
-/**
- * The building block of typelists of any length.
- * Use it through the K_TYPELIST_NN macros.
- * Defines nested types:
- * @li Head (first element, a non-typelist type by convention)
- * @li Tail (second element, can be another typelist)
- */
-template <class T, class U>
-struct KTypeList
-{
- /// first element, a non-typelist type by convention
- typedef T Head;
- /// second element, can be another typelist
- typedef U Tail;
-};
-
-// forward decl.
-template <class TList> struct KTypeListLength;
-
-template <>
-struct KTypeListLength<KDE::NullType>
-{
-/**
- * Zero length type list.
- */
- enum { Value = 0 };
-};
-
-/**
- * A class template for determining the length of a typelist. To be
- * used like KTypeListLength< typelist >::Value;
- */
-template <class T, class U>
-struct KTypeListLength< KTypeList<T, U> >
-{
- /**
- * The length of the type list.
- */
- enum { Value = 1 + KTypeListLength<U>::Value };
-};
-
-///////////////////////////////////////////////////////////////////////////////
-// class template IndexOf
-// Finds the index of a type in a typelist
-// Invocation (TList is a typelist and T is a type):
-// IndexOf<TList, T>::value
-// returns the position of T in TList, or NullType if T is not found in TList
-////////////////////////////////////////////////////////////////////////////////
-
-template <class TList, class T> struct KTypeListIndexOf;
-
-template <class T>
-struct KTypeListIndexOf<KDE::NullType, T>
-{
- enum { value = -1 };
-};
-
-template <class T, class Tail>
-struct KTypeListIndexOf< KTypeList<T, Tail>, T >
-{
- enum { value = 0 };
-};
-
-template <class Head, class Tail, class T>
-struct KTypeListIndexOf< KTypeList<Head, Tail>, T >
-{
-private:
- enum { temp = KTypeListIndexOf<Tail, T>::value };
-public:
- enum { value = (temp == -1 ? -1 : 1 + temp) };
-};
-
-
-
-/**
- * KMakeTypeList the prefered way to create a typelist for you.
- *
- * \code
- * typedef KMakeTypeList<MyType1,MyWidget,MyQobject,MyKoffice>::Result Products;
- * K_EXPORT_COMPONENT_FACTORY( libmyplugin, KGenericFactory&lt;Products&gt; )
- *
- * \endcode
- *
- *
- * @author Holger Freyther based on the Loki library. See copyright statement at the top
- * @since 3.3
- */
-template<
- typename T1 = KDE::NullType, typename T2 = KDE::NullType, typename T3 = KDE::NullType,
- typename T4 = KDE::NullType, typename T5 = KDE::NullType, typename T6 = KDE::NullType,
- typename T7 = KDE::NullType, typename T8 = KDE::NullType, typename T9 = KDE::NullType,
- typename T10 = KDE::NullType, typename T11 = KDE::NullType, typename T12 = KDE::NullType,
- typename T13 = KDE::NullType, typename T14 = KDE::NullType, typename T15 = KDE::NullType,
- typename T16 = KDE::NullType, typename T17 = KDE::NullType, typename T18 = KDE::NullType
- >
-struct KMakeTypeList{
-private:
-typedef typename KMakeTypeList
-<
- T2 , T3 , T4 ,
- T5 , T6 , T7 ,
- T8 , T9 , T10,
- T11, T12, T13,
- T14, T15, T16,
- T17, T18
->::Result TailResult;
-
-public:
- typedef KTypeList<T1, TailResult> Result;
-};
-
-template<>
-struct KMakeTypeList<>
-{
- typedef KDE::NullType Result;
-};
-
-
-#endif
-