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

« back to all changes in this revision

Viewing changes to boost/boost/mpl/aux_/preprocessed/msvc60/vector_c.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/vector_c.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 vector_c_impl_chooser;
 
9
}
 
10
 
 
11
namespace aux {
 
12
 
 
13
template<>
 
14
struct vector_c_impl_chooser<0>
 
15
{
 
16
    template<
 
17
          typename T
 
18
        , nttp_long C0, nttp_long C1, nttp_long C2, nttp_long C3
 
19
        , nttp_long C4, nttp_long C5, nttp_long C6, nttp_long C7, nttp_long C8
 
20
        , nttp_long C9
 
21
        >
 
22
    struct result_
 
23
    {
 
24
        typedef vector0_c<
 
25
              T  
 
26
            > type;
 
27
    };
 
28
};
 
29
 
 
30
} // namespace aux
 
31
 
 
32
namespace aux {
 
33
 
 
34
template<>
 
35
struct vector_c_impl_chooser<1>
 
36
{
 
37
    template<
 
38
          typename T
 
39
        , nttp_long C0, nttp_long C1, nttp_long C2, nttp_long C3
 
40
        , nttp_long C4, nttp_long C5, nttp_long C6, nttp_long C7, nttp_long C8
 
41
        , nttp_long C9
 
42
        >
 
43
    struct result_
 
44
    {
 
45
        typedef vector1_c<
 
46
              T, C0
 
47
            > type;
 
48
    };
 
49
};
 
50
 
 
51
} // namespace aux
 
52
 
 
53
namespace aux {
 
54
 
 
55
template<>
 
56
struct vector_c_impl_chooser<2>
 
57
{
 
58
    template<
 
59
          typename T
 
60
        , nttp_long C0, nttp_long C1, nttp_long C2, nttp_long C3
 
61
        , nttp_long C4, nttp_long C5, nttp_long C6, nttp_long C7, nttp_long C8
 
62
        , nttp_long C9
 
63
        >
 
64
    struct result_
 
65
    {
 
66
        typedef vector2_c<
 
67
              T, C0, C1
 
68
            > type;
 
69
    };
 
70
};
 
71
 
 
72
} // namespace aux
 
73
 
 
74
namespace aux {
 
75
 
 
76
template<>
 
77
struct vector_c_impl_chooser<3>
 
78
{
 
79
    template<
 
80
          typename T
 
81
        , nttp_long C0, nttp_long C1, nttp_long C2, nttp_long C3
 
82
        , nttp_long C4, nttp_long C5, nttp_long C6, nttp_long C7, nttp_long C8
 
83
        , nttp_long C9
 
84
        >
 
85
    struct result_
 
86
    {
 
87
        typedef vector3_c<
 
88
              T, C0, C1, C2
 
89
            > type;
 
90
    };
 
91
};
 
92
 
 
93
} // namespace aux
 
94
 
 
95
namespace aux {
 
96
 
 
97
template<>
 
98
struct vector_c_impl_chooser<4>
 
99
{
 
100
    template<
 
101
          typename T
 
102
        , nttp_long C0, nttp_long C1, nttp_long C2, nttp_long C3
 
103
        , nttp_long C4, nttp_long C5, nttp_long C6, nttp_long C7, nttp_long C8
 
104
        , nttp_long C9
 
105
        >
 
106
    struct result_
 
107
    {
 
108
        typedef vector4_c<
 
109
              T, C0, C1, C2, C3
 
110
            > type;
 
111
    };
 
112
};
 
113
 
 
114
} // namespace aux
 
115
 
 
116
namespace aux {
 
117
 
 
118
template<>
 
119
struct vector_c_impl_chooser<5>
 
120
{
 
121
    template<
 
122
          typename T
 
123
        , nttp_long C0, nttp_long C1, nttp_long C2, nttp_long C3
 
124
        , nttp_long C4, nttp_long C5, nttp_long C6, nttp_long C7, nttp_long C8
 
125
        , nttp_long C9
 
126
        >
 
127
    struct result_
 
128
    {
 
129
        typedef vector5_c<
 
130
              T, C0, C1, C2, C3, C4
 
131
            > type;
 
132
    };
 
133
};
 
134
 
 
135
} // namespace aux
 
136
 
 
137
namespace aux {
 
138
 
 
139
template<>
 
140
struct vector_c_impl_chooser<6>
 
141
{
 
142
    template<
 
143
          typename T
 
144
        , nttp_long C0, nttp_long C1, nttp_long C2, nttp_long C3
 
145
        , nttp_long C4, nttp_long C5, nttp_long C6, nttp_long C7, nttp_long C8
 
146
        , nttp_long C9
 
147
        >
 
148
    struct result_
 
149
    {
 
150
        typedef vector6_c<
 
151
              T, C0, C1, C2, C3, C4, C5
 
152
            > type;
 
153
    };
 
154
};
 
155
 
 
156
} // namespace aux
 
157
 
 
158
namespace aux {
 
159
 
 
160
template<>
 
161
struct vector_c_impl_chooser<7>
 
162
{
 
163
    template<
 
164
          typename T
 
165
        , nttp_long C0, nttp_long C1, nttp_long C2, nttp_long C3
 
166
        , nttp_long C4, nttp_long C5, nttp_long C6, nttp_long C7, nttp_long C8
 
167
        , nttp_long C9
 
168
        >
 
169
    struct result_
 
170
    {
 
171
        typedef vector7_c<
 
172
              T, C0, C1, C2, C3, C4, C5, C6
 
173
            > type;
 
174
    };
 
175
};
 
176
 
 
177
} // namespace aux
 
178
 
 
179
namespace aux {
 
180
 
 
181
template<>
 
182
struct vector_c_impl_chooser<8>
 
183
{
 
184
    template<
 
185
          typename T
 
186
        , nttp_long C0, nttp_long C1, nttp_long C2, nttp_long C3
 
187
        , nttp_long C4, nttp_long C5, nttp_long C6, nttp_long C7, nttp_long C8
 
188
        , nttp_long C9
 
189
        >
 
190
    struct result_
 
191
    {
 
192
        typedef vector8_c<
 
193
              T, C0, C1, C2, C3, C4, C5, C6, C7
 
194
            > type;
 
195
    };
 
196
};
 
197
 
 
198
} // namespace aux
 
199
 
 
200
namespace aux {
 
201
 
 
202
template<>
 
203
struct vector_c_impl_chooser<9>
 
204
{
 
205
    template<
 
206
          typename T
 
207
        , nttp_long C0, nttp_long C1, nttp_long C2, nttp_long C3
 
208
        , nttp_long C4, nttp_long C5, nttp_long C6, nttp_long C7, nttp_long C8
 
209
        , nttp_long C9
 
210
        >
 
211
    struct result_
 
212
    {
 
213
        typedef vector9_c<
 
214
              T, C0, C1, C2, C3, C4, C5, C6, C7, C8
 
215
            > type;
 
216
    };
 
217
};
 
218
 
 
219
} // namespace aux
 
220
 
 
221
namespace aux {
 
222
 
 
223
template<>
 
224
struct vector_c_impl_chooser<10>
 
225
{
 
226
    template<
 
227
          typename T
 
228
        , nttp_long C0, nttp_long C1, nttp_long C2, nttp_long C3
 
229
        , nttp_long C4, nttp_long C5, nttp_long C6, nttp_long C7, nttp_long C8
 
230
        , nttp_long C9
 
231
        >
 
232
    struct result_
 
233
    {
 
234
        typedef vector10_c<
 
235
              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
 
236
            > type;
 
237
    };
 
238
};
 
239
 
 
240
} // namespace aux
 
241
 
 
242
namespace aux {
 
243
 
 
244
template< nttp_long T >
 
245
struct is_vector_c_arg
 
246
{
 
247
    enum { value = true };
 
248
};
 
249
 
 
250
template<>
 
251
struct is_vector_c_arg<LONG_MAX>
 
252
{
 
253
    enum { value = false };
 
254
};
 
255
 
 
256
template<
 
257
      nttp_long T1, nttp_long T2, nttp_long T3, nttp_long T4, nttp_long T5
 
258
    , nttp_long T6, nttp_long T7, nttp_long T8, nttp_long T9, nttp_long T10
 
259
    >
 
260
struct vector_c_count_args
 
261
{
 
262
    enum { value =
 
263
          is_vector_c_arg<T1>::value + is_vector_c_arg<T2>::value 
 
264
        + is_vector_c_arg<T3>::value + is_vector_c_arg<T4>::value 
 
265
        + is_vector_c_arg<T5>::value + is_vector_c_arg<T6>::value 
 
266
        + is_vector_c_arg<T7>::value + is_vector_c_arg<T8>::value 
 
267
        + is_vector_c_arg<T9>::value + is_vector_c_arg<T10>::value
 
268
        };
 
269
};
 
270
 
 
271
template<
 
272
      typename T
 
273
    , nttp_long C0, nttp_long C1, nttp_long C2, nttp_long C3, nttp_long C4
 
274
    , nttp_long C5, nttp_long C6, nttp_long C7, nttp_long C8, nttp_long C9
 
275
    >
 
276
struct vector_c_impl
 
277
{
 
278
    typedef aux::vector_c_count_args< C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > arg_num_;
 
279
    typedef typename aux::vector_c_impl_chooser< arg_num_::value >
 
280
        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
 
281
};
 
282
 
 
283
} // namespace aux
 
284
 
 
285
template<
 
286
      typename T
 
287
    , nttp_long C0 = LONG_MAX, nttp_long C1 = LONG_MAX
 
288
    , nttp_long C2 = LONG_MAX, nttp_long C3 = LONG_MAX, nttp_long C4 = LONG_MAX
 
289
    , nttp_long C5 = LONG_MAX, nttp_long C6 = LONG_MAX, nttp_long C7 = LONG_MAX
 
290
    , nttp_long C8 = LONG_MAX, nttp_long C9 = LONG_MAX
 
291
    >
 
292
struct vector_c
 
293
    : aux::vector_c_impl< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type
 
294
{
 
295
    typedef typename aux::vector_c_impl<
 
296
          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
 
297
        >::type type;
 
298
};
 
299
 
 
300
} // namespace mpl
 
301
} // namespace boost
 
302