TypeList.h File Reference

Templates and defines which provide API to work with Type Lists. More...

Go to the source code of this file.

Namespaces

namespace  tl

Data Structures

class  tl::NullType
 Null type which is used to mark end of the TypeList. More...
class  tl::TypeList< H, T >
 TypeList template class. More...
class  tl::ListLength< TypeList< H, T > >
 Calculate length of the TypeList. More...
class  tl::ListLength< NullType >
 Calculate length of the TypeList. More...
class  tl::Get< TypeList< H, T >, 0 >
 Select i-th type from TypeList. More...
class  tl::Get< TypeList< H, T >, i >
 Select i-th type from TypeList. More...
struct  tl::IndexOf< NullType, T >
 Index of type in TypeList. More...
struct  tl::IndexOf< TypeList< T, Tail >, T >
 Index of type in TypeList. More...
struct  tl::IndexOf< TypeList< Head, Tail >, T >
 Index of type in TypeList. More...

Defines

#define CREATE_TYPE_LIST_01(T01)   ::tl::TypeList< T01, ::tl::NullType >
 Create TypeList containing one type.
#define CREATE_TYPE_LIST_02(T01, T02)   ::tl::TypeList< T01, CREATE_TYPE_LIST_01(T02) >
 Create TypeList containing two types.
#define CREATE_TYPE_LIST_03(T01, T02, T03)   ::tl::TypeList< T01, CREATE_TYPE_LIST_02(T02, T03) >
 Create TypeList containing three types.
#define CREATE_TYPE_LIST_04(T01, T02, T03, T04)   ::tl::TypeList< T01, CREATE_TYPE_LIST_03(T02, T03, T04) >
 Create TypeList containing four types.
#define CREATE_TYPE_LIST_05(T01, T02, T03, T04, T05)   ::tl::TypeList< T01, CREATE_TYPE_LIST_04(T02, T03, T04, T05) >
 Create TypeList containing five types.
#define CREATE_TYPE_LIST_06(T01, T02, T03, T04, T05, T06)   ::tl::TypeList< T01, CREATE_TYPE_LIST_05(T02, T03, T04, T05, T06) >
 Create TypeList containing six types.
#define CREATE_TYPE_LIST_07(T01, T02, T03, T04, T05, T06, T07)   ::tl::TypeList< T01, CREATE_TYPE_LIST_06(T02, T03, T04, T05, T06, T07) >
 Create TypeList containing seven types.
#define CREATE_TYPE_LIST_08(T01, T02, T03, T04, T05, T06, T07, T08)   ::tl::TypeList< T01, CREATE_TYPE_LIST_07(T02, T03, T04, T05, T06, T07, T08) >
 Create TypeList containing eight types.
#define CREATE_TYPE_LIST_09(T01, T02, T03, T04, T05, T06, T07, T08, T09)   ::tl::TypeList< T01, CREATE_TYPE_LIST_08(T02, T03, T04, T05, T06, T07, T08, T09) >
 Create TypeList containing nine types.
#define CREATE_TYPE_LIST_10(T01, T02, T03, T04, T05, T06, T07, T08, T09, T10)   ::tl::TypeList< T01, CREATE_TYPE_LIST_09(T02, T03, T04, T05, T06, T07, T08, T09, T10) >
 Create TypeList containing ten types.
#define CREATE_TYPE_LIST_11(T01, T02, T03, T04, T05, T06, T07, T08, T09, T10, T11)   ::tl::TypeList< T01, CREATE_TYPE_LIST_10(T02, T03, T04, T05, T06, T07, T08, T09, T10, T11) >
 Create TypeList containing 11 types.
#define CREATE_TYPE_LIST_12(T01, T02, T03, T04, T05, T06, T07, T08, T09, T10, T11, T12)   ::tl::TypeList< T01, CREATE_TYPE_LIST_11(T02, T03, T04, T05, T06, T07, T08, T09, T10, T11, T12) >
 Create TypeList containing 12 types.


Detailed Description

Templates and defines which provide API to work with Type Lists.

Author:
Branislav Repcek
Date:
7. 10. 2006

Define Documentation

#define CREATE_TYPE_LIST_01 ( T01   )     ::tl::TypeList< T01, ::tl::NullType >

Create TypeList containing one type.

#define CREATE_TYPE_LIST_02 ( T01,
T02   )     ::tl::TypeList< T01, CREATE_TYPE_LIST_01(T02) >

Create TypeList containing two types.

#define CREATE_TYPE_LIST_03 ( T01,
T02,
T03   )     ::tl::TypeList< T01, CREATE_TYPE_LIST_02(T02, T03) >

Create TypeList containing three types.

#define CREATE_TYPE_LIST_04 ( T01,
T02,
T03,
T04   )     ::tl::TypeList< T01, CREATE_TYPE_LIST_03(T02, T03, T04) >

Create TypeList containing four types.

#define CREATE_TYPE_LIST_05 ( T01,
T02,
T03,
T04,
T05   )     ::tl::TypeList< T01, CREATE_TYPE_LIST_04(T02, T03, T04, T05) >

Create TypeList containing five types.

#define CREATE_TYPE_LIST_06 ( T01,
T02,
T03,
T04,
T05,
T06   )     ::tl::TypeList< T01, CREATE_TYPE_LIST_05(T02, T03, T04, T05, T06) >

Create TypeList containing six types.

#define CREATE_TYPE_LIST_07 ( T01,
T02,
T03,
T04,
T05,
T06,
T07   )     ::tl::TypeList< T01, CREATE_TYPE_LIST_06(T02, T03, T04, T05, T06, T07) >

Create TypeList containing seven types.

#define CREATE_TYPE_LIST_08 ( T01,
T02,
T03,
T04,
T05,
T06,
T07,
T08   )     ::tl::TypeList< T01, CREATE_TYPE_LIST_07(T02, T03, T04, T05, T06, T07, T08) >

Create TypeList containing eight types.

#define CREATE_TYPE_LIST_09 ( T01,
T02,
T03,
T04,
T05,
T06,
T07,
T08,
T09   )     ::tl::TypeList< T01, CREATE_TYPE_LIST_08(T02, T03, T04, T05, T06, T07, T08, T09) >

Create TypeList containing nine types.

#define CREATE_TYPE_LIST_10 ( T01,
T02,
T03,
T04,
T05,
T06,
T07,
T08,
T09,
T10   )     ::tl::TypeList< T01, CREATE_TYPE_LIST_09(T02, T03, T04, T05, T06, T07, T08, T09, T10) >

Create TypeList containing ten types.

#define CREATE_TYPE_LIST_11 ( T01,
T02,
T03,
T04,
T05,
T06,
T07,
T08,
T09,
T10,
T11   )     ::tl::TypeList< T01, CREATE_TYPE_LIST_10(T02, T03, T04, T05, T06, T07, T08, T09, T10, T11) >

Create TypeList containing 11 types.

#define CREATE_TYPE_LIST_12 ( T01,
T02,
T03,
T04,
T05,
T06,
T07,
T08,
T09,
T10,
T11,
T12   )     ::tl::TypeList< T01, CREATE_TYPE_LIST_11(T02, T03, T04, T05, T06, T07, T08, T09, T10, T11, T12) >

Create TypeList containing 12 types.


Generated on Tue Dec 19 17:43:48 2006 for Load Monitor for Linux by  doxygen 1.4.7