ASAGI
1.0
a pArallel Server for Adaptive GeoInformation
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
magic
typelist.h
Go to the documentation of this file.
1
39
// These parts are taken from
40
// http://loki-lib.sourceforge.net/html/a00681.html
41
42
// The Loki Library
43
// Copyright (c) 2001 by Andrei Alexandrescu
44
// This code accompanies the book:
45
// Alexandrescu, Andrei. "Modern C++ Design: Generic Programming and Design
46
// Patterns Applied". Copyright (c) 2001. Addison-Wesley.
47
// Permission to use, copy, modify, distribute and sell this software for any
48
// purpose is hereby granted without fee, provided that the above copyright
49
// notice appear in all copies and that both that copyright notice and this
50
// permission notice appear in supporting documentation.
51
// The author or Addison-Welsey Longman make no representations about the
52
// suitability of this software for any purpose. It is provided "as is"
53
// without express or implied warranty.
54
55
#ifndef MAGIC_TYPELIST_H
56
#define MAGIC_TYPELIST_H
57
58
#include "
nulltype.h
"
59
63
namespace
magic
64
{
65
69
template
<
class
T,
class
U>
70
struct
Typelist
71
{
72
typedef
T Head;
73
typedef
U Tail;
74
};
75
79
template
80
<
81
typename
T1 =
NullType
,
typename
T2 =
NullType
,
typename
T3 =
NullType
,
82
typename
T4 =
NullType
,
typename
T5 =
NullType
,
typename
T6 =
NullType
,
83
typename
T7 =
NullType
,
typename
T8 =
NullType
,
typename
T9 =
NullType
,
84
typename
T10 =
NullType
,
typename
T11 =
NullType
,
typename
T12 =
NullType
,
85
typename
T13 =
NullType
,
typename
T14 =
NullType
,
typename
T15 =
NullType
,
86
typename
T16 =
NullType
,
typename
T17 =
NullType
,
typename
T18 =
NullType
87
>
88
struct
MakeTypelist
89
{
90
private
:
92
typedef
typename
MakeTypelist
93
<
94
T2 , T3 , T4 ,
95
T5 , T6 , T7 ,
96
T8 , T9 , T10,
97
T11, T12, T13,
98
T14, T15, T16,
99
T17, T18
100
>
101
::result
TailResult
;
102
103
public
:
105
typedef
magic::Typelist<T1, TailResult>
result
;
106
};
107
111
template
<>
112
struct
MakeTypelist
<>
113
{
114
typedef
magic::NullType
result
;
115
};
116
117
}
118
119
#endif // MAGIC_TYPELIST_H
magic::MakeTypelist::TailResult
MakeTypelist< T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::result TailResult
Definition:
typelist.h:101
magic::NullType
Definition:
nulltype.h:47
magic::Typelist
Definition:
typelist.h:70
magic::MakeTypelist::result
magic::Typelist< T1, TailResult > result
Definition:
typelist.h:105
nulltype.h
magic::MakeTypelist
Definition:
typelist.h:88
Generated by
1.8.7