~ubuntu-branches/ubuntu/precise/deal.ii/precise

« back to all changes in this revision

Viewing changes to contrib/boost/include/boost/mpl/aux_/preprocessed/msvc60/vector.hpp

  • Committer: Bazaar Package Importer
  • Author(s): Adam C. Powell, IV
  • Date: 2009-05-08 23:13:50 UTC
  • Revision ID: james.westby@ubuntu.com-20090508231350-rrh1ltgi0tifabwc
Tags: upstream-6.2.0
ImportĀ upstreamĀ versionĀ 6.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
 
 
12
namespace boost { namespace mpl {
 
13
 
 
14
namespace aux {
 
15
template< int N >
 
16
struct vector_chooser;
 
17
 
 
18
}
 
19
 
 
20
namespace aux {
 
21
 
 
22
template<>
 
23
struct 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
 
 
42
namespace aux {
 
43
 
 
44
template<>
 
45
struct 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
 
 
64
namespace aux {
 
65
 
 
66
template<>
 
67
struct 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
 
 
86
namespace aux {
 
87
 
 
88
template<>
 
89
struct 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
 
 
108
namespace aux {
 
109
 
 
110
template<>
 
111
struct 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
 
 
130
namespace aux {
 
131
 
 
132
template<>
 
133
struct 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
 
 
152
namespace aux {
 
153
 
 
154
template<>
 
155
struct 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
 
 
174
namespace aux {
 
175
 
 
176
template<>
 
177
struct 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
 
 
196
namespace aux {
 
197
 
 
198
template<>
 
199
struct 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
 
 
218
namespace aux {
 
219
 
 
220
template<>
 
221
struct 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
 
 
240
namespace aux {
 
241
 
 
242
template<>
 
243
struct 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
 
 
262
namespace aux {
 
263
 
 
264
template<>
 
265
struct 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
 
 
284
namespace aux {
 
285
 
 
286
template<>
 
287
struct 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
 
 
306
namespace aux {
 
307
 
 
308
template<>
 
309
struct 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
 
 
328
namespace aux {
 
329
 
 
330
template<>
 
331
struct 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
 
 
350
namespace aux {
 
351
 
 
352
template<>
 
353
struct 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
 
 
372
namespace aux {
 
373
 
 
374
template<>
 
375
struct 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
 
 
394
namespace aux {
 
395
 
 
396
template<>
 
397
struct 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
 
 
416
namespace aux {
 
417
 
 
418
template<>
 
419
struct 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
 
 
438
namespace aux {
 
439
 
 
440
template<>
 
441
struct 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
 
 
460
namespace aux {
 
461
 
 
462
template<>
 
463
struct 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
 
 
482
namespace aux {
 
483
 
 
484
template< typename T >
 
485
struct is_vector_arg
 
486
{
 
487
    BOOST_STATIC_CONSTANT(bool, value  = true);
 
488
};
 
489
 
 
490
template<>
 
491
struct is_vector_arg<na>
 
492
{
 
493
    BOOST_STATIC_CONSTANT(bool, value  = false);
 
494
};
 
495
 
 
496
template<
 
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
    >
 
502
struct 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
 
 
519
template<
 
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
    >
 
525
struct 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
 
 
537
template<
 
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
    >
 
545
struct 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