source: XIOS/dev/dev_olga/src/extern/boost/include/boost/mpl/aux_/preprocessed/msvc60/vector.hpp @ 1022

Last change on this file since 1022 was 1022, checked in by mhnguyen, 7 years ago
File size: 14.4 KB
Line 
1
2// Copyright Aleksey Gurtovoy 2000-2004
3//
4// Distributed under the Boost Software License, Version 1.0.
5// (See accompanying file LICENSE_1_0.txt or copy at
6// http://www.boost.org/LICENSE_1_0.txt)
7//
8
9// Preprocessed version of "boost/mpl/vector.hpp" header
10// -- DO NOT modify by hand!
11
12namespace boost { namespace mpl {
13
14namespace aux {
15template< int N >
16struct vector_chooser;
17
18}
19
20namespace aux {
21
22template<>
23struct vector_chooser<0>
24{
25    template<
26          typename T0, typename T1, typename T2, typename T3, typename T4
27        , typename T5, typename T6, typename T7, typename T8, typename T9
28        , typename T10, typename T11, typename T12, typename T13, typename T14
29        , typename T15, typename T16, typename T17, typename T18, typename T19
30        >
31    struct result_
32    {
33        typedef vector0<
34             
35            >::type type;
36
37    };
38};
39
40} // namespace aux
41
42namespace aux {
43
44template<>
45struct vector_chooser<1>
46{
47    template<
48          typename T0, typename T1, typename T2, typename T3, typename T4
49        , typename T5, typename T6, typename T7, typename T8, typename T9
50        , typename T10, typename T11, typename T12, typename T13, typename T14
51        , typename T15, typename T16, typename T17, typename T18, typename T19
52        >
53    struct result_
54    {
55        typedef typename vector1<
56              T0
57            >::type type;
58
59    };
60};
61
62} // namespace aux
63
64namespace aux {
65
66template<>
67struct vector_chooser<2>
68{
69    template<
70          typename T0, typename T1, typename T2, typename T3, typename T4
71        , typename T5, typename T6, typename T7, typename T8, typename T9
72        , typename T10, typename T11, typename T12, typename T13, typename T14
73        , typename T15, typename T16, typename T17, typename T18, typename T19
74        >
75    struct result_
76    {
77        typedef typename vector2<
78              T0, T1
79            >::type type;
80
81    };
82};
83
84} // namespace aux
85
86namespace aux {
87
88template<>
89struct vector_chooser<3>
90{
91    template<
92          typename T0, typename T1, typename T2, typename T3, typename T4
93        , typename T5, typename T6, typename T7, typename T8, typename T9
94        , typename T10, typename T11, typename T12, typename T13, typename T14
95        , typename T15, typename T16, typename T17, typename T18, typename T19
96        >
97    struct result_
98    {
99        typedef typename vector3<
100              T0, T1, T2
101            >::type type;
102
103    };
104};
105
106} // namespace aux
107
108namespace aux {
109
110template<>
111struct vector_chooser<4>
112{
113    template<
114          typename T0, typename T1, typename T2, typename T3, typename T4
115        , typename T5, typename T6, typename T7, typename T8, typename T9
116        , typename T10, typename T11, typename T12, typename T13, typename T14
117        , typename T15, typename T16, typename T17, typename T18, typename T19
118        >
119    struct result_
120    {
121        typedef typename vector4<
122              T0, T1, T2, T3
123            >::type type;
124
125    };
126};
127
128} // namespace aux
129
130namespace aux {
131
132template<>
133struct vector_chooser<5>
134{
135    template<
136          typename T0, typename T1, typename T2, typename T3, typename T4
137        , typename T5, typename T6, typename T7, typename T8, typename T9
138        , typename T10, typename T11, typename T12, typename T13, typename T14
139        , typename T15, typename T16, typename T17, typename T18, typename T19
140        >
141    struct result_
142    {
143        typedef typename vector5<
144              T0, T1, T2, T3, T4
145            >::type type;
146
147    };
148};
149
150} // namespace aux
151
152namespace aux {
153
154template<>
155struct vector_chooser<6>
156{
157    template<
158          typename T0, typename T1, typename T2, typename T3, typename T4
159        , typename T5, typename T6, typename T7, typename T8, typename T9
160        , typename T10, typename T11, typename T12, typename T13, typename T14
161        , typename T15, typename T16, typename T17, typename T18, typename T19
162        >
163    struct result_
164    {
165        typedef typename vector6<
166              T0, T1, T2, T3, T4, T5
167            >::type type;
168
169    };
170};
171
172} // namespace aux
173
174namespace aux {
175
176template<>
177struct vector_chooser<7>
178{
179    template<
180          typename T0, typename T1, typename T2, typename T3, typename T4
181        , typename T5, typename T6, typename T7, typename T8, typename T9
182        , typename T10, typename T11, typename T12, typename T13, typename T14
183        , typename T15, typename T16, typename T17, typename T18, typename T19
184        >
185    struct result_
186    {
187        typedef typename vector7<
188              T0, T1, T2, T3, T4, T5, T6
189            >::type type;
190
191    };
192};
193
194} // namespace aux
195
196namespace aux {
197
198template<>
199struct vector_chooser<8>
200{
201    template<
202          typename T0, typename T1, typename T2, typename T3, typename T4
203        , typename T5, typename T6, typename T7, typename T8, typename T9
204        , typename T10, typename T11, typename T12, typename T13, typename T14
205        , typename T15, typename T16, typename T17, typename T18, typename T19
206        >
207    struct result_
208    {
209        typedef typename vector8<
210              T0, T1, T2, T3, T4, T5, T6, T7
211            >::type type;
212
213    };
214};
215
216} // namespace aux
217
218namespace aux {
219
220template<>
221struct vector_chooser<9>
222{
223    template<
224          typename T0, typename T1, typename T2, typename T3, typename T4
225        , typename T5, typename T6, typename T7, typename T8, typename T9
226        , typename T10, typename T11, typename T12, typename T13, typename T14
227        , typename T15, typename T16, typename T17, typename T18, typename T19
228        >
229    struct result_
230    {
231        typedef typename vector9<
232              T0, T1, T2, T3, T4, T5, T6, T7, T8
233            >::type type;
234
235    };
236};
237
238} // namespace aux
239
240namespace aux {
241
242template<>
243struct vector_chooser<10>
244{
245    template<
246          typename T0, typename T1, typename T2, typename T3, typename T4
247        , typename T5, typename T6, typename T7, typename T8, typename T9
248        , typename T10, typename T11, typename T12, typename T13, typename T14
249        , typename T15, typename T16, typename T17, typename T18, typename T19
250        >
251    struct result_
252    {
253        typedef typename vector10<
254              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
255            >::type type;
256
257    };
258};
259
260} // namespace aux
261
262namespace aux {
263
264template<>
265struct vector_chooser<11>
266{
267    template<
268          typename T0, typename T1, typename T2, typename T3, typename T4
269        , typename T5, typename T6, typename T7, typename T8, typename T9
270        , typename T10, typename T11, typename T12, typename T13, typename T14
271        , typename T15, typename T16, typename T17, typename T18, typename T19
272        >
273    struct result_
274    {
275        typedef typename vector11<
276              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
277            >::type type;
278
279    };
280};
281
282} // namespace aux
283
284namespace aux {
285
286template<>
287struct vector_chooser<12>
288{
289    template<
290          typename T0, typename T1, typename T2, typename T3, typename T4
291        , typename T5, typename T6, typename T7, typename T8, typename T9
292        , typename T10, typename T11, typename T12, typename T13, typename T14
293        , typename T15, typename T16, typename T17, typename T18, typename T19
294        >
295    struct result_
296    {
297        typedef typename vector12<
298              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
299            >::type type;
300
301    };
302};
303
304} // namespace aux
305
306namespace aux {
307
308template<>
309struct vector_chooser<13>
310{
311    template<
312          typename T0, typename T1, typename T2, typename T3, typename T4
313        , typename T5, typename T6, typename T7, typename T8, typename T9
314        , typename T10, typename T11, typename T12, typename T13, typename T14
315        , typename T15, typename T16, typename T17, typename T18, typename T19
316        >
317    struct result_
318    {
319        typedef typename vector13<
320              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
321            >::type type;
322
323    };
324};
325
326} // namespace aux
327
328namespace aux {
329
330template<>
331struct vector_chooser<14>
332{
333    template<
334          typename T0, typename T1, typename T2, typename T3, typename T4
335        , typename T5, typename T6, typename T7, typename T8, typename T9
336        , typename T10, typename T11, typename T12, typename T13, typename T14
337        , typename T15, typename T16, typename T17, typename T18, typename T19
338        >
339    struct result_
340    {
341        typedef typename vector14<
342              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
343            >::type type;
344
345    };
346};
347
348} // namespace aux
349
350namespace aux {
351
352template<>
353struct vector_chooser<15>
354{
355    template<
356          typename T0, typename T1, typename T2, typename T3, typename T4
357        , typename T5, typename T6, typename T7, typename T8, typename T9
358        , typename T10, typename T11, typename T12, typename T13, typename T14
359        , typename T15, typename T16, typename T17, typename T18, typename T19
360        >
361    struct result_
362    {
363        typedef typename vector15<
364              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
365            >::type type;
366
367    };
368};
369
370} // namespace aux
371
372namespace aux {
373
374template<>
375struct vector_chooser<16>
376{
377    template<
378          typename T0, typename T1, typename T2, typename T3, typename T4
379        , typename T5, typename T6, typename T7, typename T8, typename T9
380        , typename T10, typename T11, typename T12, typename T13, typename T14
381        , typename T15, typename T16, typename T17, typename T18, typename T19
382        >
383    struct result_
384    {
385        typedef typename vector16<
386              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
387            >::type type;
388
389    };
390};
391
392} // namespace aux
393
394namespace aux {
395
396template<>
397struct vector_chooser<17>
398{
399    template<
400          typename T0, typename T1, typename T2, typename T3, typename T4
401        , typename T5, typename T6, typename T7, typename T8, typename T9
402        , typename T10, typename T11, typename T12, typename T13, typename T14
403        , typename T15, typename T16, typename T17, typename T18, typename T19
404        >
405    struct result_
406    {
407        typedef typename vector17<
408              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
409            >::type type;
410
411    };
412};
413
414} // namespace aux
415
416namespace aux {
417
418template<>
419struct vector_chooser<18>
420{
421    template<
422          typename T0, typename T1, typename T2, typename T3, typename T4
423        , typename T5, typename T6, typename T7, typename T8, typename T9
424        , typename T10, typename T11, typename T12, typename T13, typename T14
425        , typename T15, typename T16, typename T17, typename T18, typename T19
426        >
427    struct result_
428    {
429        typedef typename vector18<
430              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
431            >::type type;
432
433    };
434};
435
436} // namespace aux
437
438namespace aux {
439
440template<>
441struct vector_chooser<19>
442{
443    template<
444          typename T0, typename T1, typename T2, typename T3, typename T4
445        , typename T5, typename T6, typename T7, typename T8, typename T9
446        , typename T10, typename T11, typename T12, typename T13, typename T14
447        , typename T15, typename T16, typename T17, typename T18, typename T19
448        >
449    struct result_
450    {
451        typedef typename vector19<
452              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
453            >::type type;
454
455    };
456};
457
458} // namespace aux
459
460namespace aux {
461
462template<>
463struct vector_chooser<20>
464{
465    template<
466          typename T0, typename T1, typename T2, typename T3, typename T4
467        , typename T5, typename T6, typename T7, typename T8, typename T9
468        , typename T10, typename T11, typename T12, typename T13, typename T14
469        , typename T15, typename T16, typename T17, typename T18, typename T19
470        >
471    struct result_
472    {
473        typedef typename vector20<
474              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
475            >::type type;
476
477    };
478};
479
480} // namespace aux
481
482namespace aux {
483
484template< typename T >
485struct is_vector_arg
486{
487    BOOST_STATIC_CONSTANT(bool, value  = true);
488};
489
490template<>
491struct is_vector_arg<na>
492{
493    BOOST_STATIC_CONSTANT(bool, value  = false);
494};
495
496template<
497      typename T1, typename T2, typename T3, typename T4, typename T5
498    , typename T6, typename T7, typename T8, typename T9, typename T10
499    , typename T11, typename T12, typename T13, typename T14, typename T15
500    , typename T16, typename T17, typename T18, typename T19, typename T20
501    >
502struct vector_count_args
503{
504    BOOST_STATIC_CONSTANT(int, value =
505          is_vector_arg<T1>::value + is_vector_arg<T2>::value
506        + is_vector_arg<T3>::value + is_vector_arg<T4>::value
507        + is_vector_arg<T5>::value + is_vector_arg<T6>::value
508        + is_vector_arg<T7>::value + is_vector_arg<T8>::value
509        + is_vector_arg<T9>::value + is_vector_arg<T10>::value
510        + is_vector_arg<T11>::value + is_vector_arg<T12>::value
511        + is_vector_arg<T13>::value + is_vector_arg<T14>::value
512        + is_vector_arg<T15>::value + is_vector_arg<T16>::value
513        + is_vector_arg<T17>::value + is_vector_arg<T18>::value
514        + is_vector_arg<T19>::value + is_vector_arg<T20>::value
515        );
516
517};
518
519template<
520      typename T0, typename T1, typename T2, typename T3, typename T4
521    , typename T5, typename T6, typename T7, typename T8, typename T9
522    , typename T10, typename T11, typename T12, typename T13, typename T14
523    , typename T15, typename T16, typename T17, typename T18, typename T19
524    >
525struct vector_impl
526{
527    typedef aux::vector_count_args<
528          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
529        > arg_num_;
530
531    typedef typename aux::vector_chooser< arg_num_::value >
532        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
533};
534
535} // namespace aux
536
537template<
538      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
539    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
540    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
541    , typename T12 = na, typename T13 = na, typename T14 = na
542    , typename T15 = na, typename T16 = na, typename T17 = na
543    , typename T18 = na, typename T19 = na
544    >
545struct vector
546    : aux::vector_impl<
547          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
548        >::type
549{
550    typedef typename aux::vector_impl<
551          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
552        >::type type;
553};
554
555}}
556
Note: See TracBrowser for help on using the repository browser.