~ubuntu-branches/ubuntu/warty/aqsis/warty

« back to all changes in this revision

Viewing changes to boost/boost/mpl/aux_/preprocessed/msvc60/list.hpp

  • Committer: Bazaar Package Importer
  • Author(s): LaMont Jones
  • Date: 2004-08-24 07:25:04 UTC
  • Revision ID: james.westby@ubuntu.com-20040824072504-zf993vnevvisdsvb
Tags: upstream-0.9.1
ImportĀ upstreamĀ versionĀ 0.9.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// preprocessed version of 'boost/mpl/list.hpp' header
 
2
// see the original for copyright information
 
3
 
 
4
namespace boost {
 
5
namespace mpl {
 
6
 
 
7
namespace aux {
 
8
template< nttp_int N > struct list_impl_chooser;
 
9
}
 
10
 
 
11
namespace aux {
 
12
 
 
13
template<>
 
14
struct list_impl_chooser<0>
 
15
{
 
16
    template<
 
17
          typename T0, typename T1, typename T2, typename T3, typename T4
 
18
        , typename T5, typename T6, typename T7, typename T8, typename T9
 
19
        >
 
20
    struct result_
 
21
    {
 
22
        typedef list0<
 
23
              
 
24
            > type;
 
25
    };
 
26
};
 
27
 
 
28
} // namespace aux
 
29
 
 
30
namespace aux {
 
31
 
 
32
template<>
 
33
struct list_impl_chooser<1>
 
34
{
 
35
    template<
 
36
          typename T0, typename T1, typename T2, typename T3, typename T4
 
37
        , typename T5, typename T6, typename T7, typename T8, typename T9
 
38
        >
 
39
    struct result_
 
40
    {
 
41
        typedef list1<
 
42
               T0
 
43
            > type;
 
44
    };
 
45
};
 
46
 
 
47
} // namespace aux
 
48
 
 
49
namespace aux {
 
50
 
 
51
template<>
 
52
struct list_impl_chooser<2>
 
53
{
 
54
    template<
 
55
          typename T0, typename T1, typename T2, typename T3, typename T4
 
56
        , typename T5, typename T6, typename T7, typename T8, typename T9
 
57
        >
 
58
    struct result_
 
59
    {
 
60
        typedef list2<
 
61
               T0, T1
 
62
            > type;
 
63
    };
 
64
};
 
65
 
 
66
} // namespace aux
 
67
 
 
68
namespace aux {
 
69
 
 
70
template<>
 
71
struct list_impl_chooser<3>
 
72
{
 
73
    template<
 
74
          typename T0, typename T1, typename T2, typename T3, typename T4
 
75
        , typename T5, typename T6, typename T7, typename T8, typename T9
 
76
        >
 
77
    struct result_
 
78
    {
 
79
        typedef list3<
 
80
               T0, T1, T2
 
81
            > type;
 
82
    };
 
83
};
 
84
 
 
85
} // namespace aux
 
86
 
 
87
namespace aux {
 
88
 
 
89
template<>
 
90
struct list_impl_chooser<4>
 
91
{
 
92
    template<
 
93
          typename T0, typename T1, typename T2, typename T3, typename T4
 
94
        , typename T5, typename T6, typename T7, typename T8, typename T9
 
95
        >
 
96
    struct result_
 
97
    {
 
98
        typedef list4<
 
99
               T0, T1, T2, T3
 
100
            > type;
 
101
    };
 
102
};
 
103
 
 
104
} // namespace aux
 
105
 
 
106
namespace aux {
 
107
 
 
108
template<>
 
109
struct list_impl_chooser<5>
 
110
{
 
111
    template<
 
112
          typename T0, typename T1, typename T2, typename T3, typename T4
 
113
        , typename T5, typename T6, typename T7, typename T8, typename T9
 
114
        >
 
115
    struct result_
 
116
    {
 
117
        typedef list5<
 
118
               T0, T1, T2, T3, T4
 
119
            > type;
 
120
    };
 
121
};
 
122
 
 
123
} // namespace aux
 
124
 
 
125
namespace aux {
 
126
 
 
127
template<>
 
128
struct list_impl_chooser<6>
 
129
{
 
130
    template<
 
131
          typename T0, typename T1, typename T2, typename T3, typename T4
 
132
        , typename T5, typename T6, typename T7, typename T8, typename T9
 
133
        >
 
134
    struct result_
 
135
    {
 
136
        typedef list6<
 
137
               T0, T1, T2, T3, T4, T5
 
138
            > type;
 
139
    };
 
140
};
 
141
 
 
142
} // namespace aux
 
143
 
 
144
namespace aux {
 
145
 
 
146
template<>
 
147
struct list_impl_chooser<7>
 
148
{
 
149
    template<
 
150
          typename T0, typename T1, typename T2, typename T3, typename T4
 
151
        , typename T5, typename T6, typename T7, typename T8, typename T9
 
152
        >
 
153
    struct result_
 
154
    {
 
155
        typedef list7<
 
156
               T0, T1, T2, T3, T4, T5, T6
 
157
            > type;
 
158
    };
 
159
};
 
160
 
 
161
} // namespace aux
 
162
 
 
163
namespace aux {
 
164
 
 
165
template<>
 
166
struct list_impl_chooser<8>
 
167
{
 
168
    template<
 
169
          typename T0, typename T1, typename T2, typename T3, typename T4
 
170
        , typename T5, typename T6, typename T7, typename T8, typename T9
 
171
        >
 
172
    struct result_
 
173
    {
 
174
        typedef list8<
 
175
               T0, T1, T2, T3, T4, T5, T6, T7
 
176
            > type;
 
177
    };
 
178
};
 
179
 
 
180
} // namespace aux
 
181
 
 
182
namespace aux {
 
183
 
 
184
template<>
 
185
struct list_impl_chooser<9>
 
186
{
 
187
    template<
 
188
          typename T0, typename T1, typename T2, typename T3, typename T4
 
189
        , typename T5, typename T6, typename T7, typename T8, typename T9
 
190
        >
 
191
    struct result_
 
192
    {
 
193
        typedef list9<
 
194
               T0, T1, T2, T3, T4, T5, T6, T7, T8
 
195
            > type;
 
196
    };
 
197
};
 
198
 
 
199
} // namespace aux
 
200
 
 
201
namespace aux {
 
202
 
 
203
template<>
 
204
struct list_impl_chooser<10>
 
205
{
 
206
    template<
 
207
          typename T0, typename T1, typename T2, typename T3, typename T4
 
208
        , typename T5, typename T6, typename T7, typename T8, typename T9
 
209
        >
 
210
    struct result_
 
211
    {
 
212
        typedef list10<
 
213
               T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
 
214
            > type;
 
215
    };
 
216
};
 
217
 
 
218
} // namespace aux
 
219
 
 
220
namespace aux {
 
221
 
 
222
template< typename T >
 
223
struct is_list_arg
 
224
{
 
225
    enum { value = true };
 
226
};
 
227
 
 
228
template<>
 
229
struct is_list_arg<void_>
 
230
{
 
231
    enum { value = false };
 
232
};
 
233
 
 
234
template<
 
235
      typename T1, typename T2, typename T3, typename T4, typename T5
 
236
    , typename T6, typename T7, typename T8, typename T9, typename T10
 
237
    >
 
238
struct list_count_args
 
239
{
 
240
    enum { value =
 
241
          is_list_arg<T1>::value + is_list_arg<T2>::value 
 
242
        + is_list_arg<T3>::value + is_list_arg<T4>::value 
 
243
        + is_list_arg<T5>::value + is_list_arg<T6>::value 
 
244
        + is_list_arg<T7>::value + is_list_arg<T8>::value 
 
245
        + is_list_arg<T9>::value + is_list_arg<T10>::value
 
246
        };
 
247
};
 
248
 
 
249
template<
 
250
      typename T0, typename T1, typename T2, typename T3, typename T4
 
251
    , typename T5, typename T6, typename T7, typename T8, typename T9
 
252
    >
 
253
struct list_impl
 
254
{
 
255
    typedef aux::list_count_args< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > arg_num_;
 
256
    typedef typename aux::list_impl_chooser< 
 
257
          arg_num_::value
 
258
        >::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
 
259
};
 
260
 
 
261
} // namespace aux
 
262
 
 
263
template<
 
264
      typename T0 = void_, typename T1 = void_, typename T2 = void_
 
265
    , typename T3 = void_, typename T4 = void_, typename T5 = void_
 
266
    , typename T6 = void_, typename T7 = void_, typename T8 = void_
 
267
    , typename T9 = void_
 
268
    >
 
269
struct list
 
270
    : aux::list_impl< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type
 
271
{
 
272
    typedef typename aux::list_impl<
 
273
           T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
 
274
        >::type type;
 
275
};
 
276
 
 
277
} // namespace mpl
 
278
} // namespace boost
 
279