diff --git a/include/loki/Sequence.h b/include/loki/Sequence.h new file mode 100755 index 0000000..9dea757 --- /dev/null +++ b/include/loki/Sequence.h @@ -0,0 +1,490 @@ +//////////////////////////////////////////////////////////////////////////////// +// The Loki Library +// Copyright (c) 2005 by Peter Kümmel +// 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 makes no representations about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. +//////////////////////////////////////////////////////////////////////////////// + + +#ifndef LOKI_SEQUENCE_INC_ +#define LOKI_SEQUENCE_INC_ + +namespace Loki +{ + + template + < + class T01=NullType,class T02=NullType,class T03=NullType,class T04=NullType,class T05=NullType, + class T06=NullType,class T07=NullType,class T08=NullType,class T09=NullType,class T10=NullType, + class T11=NullType,class T12=NullType,class T13=NullType,class T14=NullType,class T15=NullType, + class T16=NullType,class T17=NullType,class T18=NullType,class T19=NullType,class T20=NullType + > + struct Seq; + + template + struct Seq + { + typedef + Typelist + Type; + }; + template + struct Seq + { + typedef + Typelist > + Type; + }; + template + struct Seq + { + typedef + Typelist > > + Type; + }; + template + struct Seq + { + typedef + Typelist > > > + Type; + }; + template + struct Seq + { + typedef + Typelist > > > > + Type; + }; + template + struct Seq< T01,T02,T03,T04,T05, + T06> + { + typedef + Typelist > > > > + > + Type; + }; + template + struct Seq< T01,T02,T03,T04,T05, + T06,T07> + { + typedef + Typelist > > > > + > > + Type; + }; + template + struct Seq< T01,T02,T03,T04,T05, + T06,T07,T08> + { + typedef + Typelist > > > > + > > > + Type; + }; + template + struct Seq< T01,T02,T03,T04,T05, + T06,T07,T08,T09> + { + typedef + Typelist > > > > + > > > > + Type; + }; + template + struct Seq< T01,T02,T03,T04,T05, + T06,T07,T08,T09,T10> + { + typedef + Typelist > > > > + > > > > > + Type; + }; + template + struct Seq< T01,T02,T03,T04,T05, + T06,T07,T08,T09,T10, + T11> + { + typedef + Typelist > > > > + > > > > > + > + Type; + }; + template + struct Seq< T01,T02,T03,T04,T05, + T06,T07,T08,T09,T10, + T11,T12> + { + typedef + Typelist > > > > + > > > > > + > > + Type; + }; + template + struct Seq< T01,T02,T03,T04,T05, + T06,T07,T08,T09,T10, + T11,T12,T13> + { + typedef + Typelist > > > > + > > > > > + > > > + Type; + }; + template + struct Seq< T01,T02,T03,T04,T05, + T06,T07,T08,T09,T10, + T11,T12,T13,T14> + { + typedef + Typelist > > > > + > > > > > + > > > > + Type; + }; + template + struct Seq< T01,T02,T03,T04,T05, + T06,T07,T08,T09,T10, + T11,T12,T13,T14,T15> + { + typedef + Typelist > > > > + > > > > > + > > > > > + Type; + }; + template + struct Seq< T01,T02,T03,T04,T05, + T06,T07,T08,T09,T10, + T11,T12,T13,T14,T15, + T16> + { + typedef + Typelist > > > > + > > > > > + > > > > > + > + Type; + }; + template + struct Seq< T01,T02,T03,T04,T05, + T06,T07,T08,T09,T10, + T11,T12,T13,T14,T15, + T16,T17> + { + typedef + Typelist > > > > + > > > > > + > > > > > + > > + Type; + }; + template + struct Seq< T01,T02,T03,T04,T05, + T06,T07,T08,T09,T10, + T11,T12,T13,T14,T15, + T16,T17,T18> + { + typedef + Typelist > > > > + > > > > > + > > > > > + > > > + Type; + }; + template + struct Seq< T01,T02,T03,T04,T05, + T06,T07,T08,T09,T10, + T11,T12,T13,T14,T15, + T16,T17,T18,T19> + { + typedef + Typelist > > > > + > > > > > + > > > > > + > > > > + Type; + }; + template + struct Seq + { + typedef + Typelist > > > > + > > > > > + > > > > > + > > > > > + Type; + }; + +} // namespace Loki + +#endif // LOKI_SEQUENCE_INC_