]> git.cworth.org Git - vogl/blob - src/extlib/loki/include/loki/Sequence.h
Initial vogl checkin
[vogl] / src / extlib / loki / include / loki / Sequence.h
1 ////////////////////////////////////////////////////////////////////////////////
2 // The Loki Library
3 // Copyright (c) 2005 by Peter Kümmel
4 // Permission to use, copy, modify, distribute and sell this software for any
5 //     purpose is hereby granted without fee, provided that the above copyright
6 //     notice appear in all copies and that both that copyright notice and this
7 //     permission notice appear in supporting documentation.
8 // The author makes no representations about the
9 //     suitability of this software for any purpose. It is provided "as is"
10 //     without express or implied warranty.
11 ////////////////////////////////////////////////////////////////////////////////
12 #ifndef LOKI_SEQUENCE_INC_
13 #define LOKI_SEQUENCE_INC_
14
15 // $Id: Sequence.h 768 2006-10-25 20:40:40Z syntheticpp $
16
17
18 #include "Typelist.h"
19
20 namespace Loki
21 {
22
23 template
24 <
25 class T01=NullType,class T02=NullType,class T03=NullType,class T04=NullType,class T05=NullType,
26       class T06=NullType,class T07=NullType,class T08=NullType,class T09=NullType,class T10=NullType,
27       class T11=NullType,class T12=NullType,class T13=NullType,class T14=NullType,class T15=NullType,
28       class T16=NullType,class T17=NullType,class T18=NullType,class T19=NullType,class T20=NullType
29       >
30 struct Seq
31 {
32 private:
33         typedef typename Seq<     T02, T03, T04, T05, T06, T07, T08, T09, T10,
34                 T11, T12, T13, T14, T15, T16, T17, T18, T19, T20>::Type
35                 TailResult;
36 public:
37         typedef Typelist<T01, TailResult> Type;
38 };
39
40 template<>
41 struct Seq<>
42 {
43         typedef NullType Type;
44 };
45
46 }   // namespace Loki
47
48 #endif // end file guardian
49