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

« back to all changes in this revision

Viewing changes to boost/boost/mpl/aux_/preprocessed/msvc70/advance_forward.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/aux_/advance_forward.hpp' header
 
2
// see the original for copyright information
 
3
 
 
4
namespace boost {
 
5
namespace mpl {
 
6
namespace aux {
 
7
 
 
8
template< long N > struct advance_forward;
 
9
 
 
10
template<>
 
11
struct advance_forward<0>
 
12
{
 
13
    template< typename Iterator > struct apply
 
14
    {
 
15
        typedef Iterator iter0;
 
16
        typedef iter0 type;
 
17
    };
 
18
 
 
19
};
 
20
 
 
21
template<>
 
22
struct advance_forward<1>
 
23
{
 
24
    template< typename Iterator > struct apply
 
25
    {
 
26
        typedef Iterator iter0;
 
27
        typedef typename iter0::next iter1;
 
28
        typedef iter1 type;
 
29
    };
 
30
 
 
31
};
 
32
 
 
33
template<>
 
34
struct advance_forward<2>
 
35
{
 
36
    template< typename Iterator > struct apply
 
37
    {
 
38
        typedef Iterator iter0;
 
39
        typedef typename iter0::next iter1;
 
40
        typedef typename iter1::next iter2;
 
41
        typedef iter2 type;
 
42
    };
 
43
 
 
44
};
 
45
 
 
46
template<>
 
47
struct advance_forward<3>
 
48
{
 
49
    template< typename Iterator > struct apply
 
50
    {
 
51
        typedef Iterator iter0;
 
52
        typedef typename iter0::next iter1;
 
53
        typedef typename iter1::next iter2;
 
54
        typedef typename iter2::next iter3;
 
55
        typedef iter3 type;
 
56
    };
 
57
 
 
58
};
 
59
 
 
60
template<>
 
61
struct advance_forward<4>
 
62
{
 
63
    template< typename Iterator > struct apply
 
64
    {
 
65
        typedef Iterator iter0;
 
66
        typedef typename iter0::next iter1;
 
67
        typedef typename iter1::next iter2;
 
68
        typedef typename iter2::next iter3;
 
69
        typedef typename iter3::next iter4;
 
70
        typedef iter4 type;
 
71
    };
 
72
 
 
73
};
 
74
 
 
75
template< long N > 
 
76
struct advance_forward
 
77
{
 
78
    template< typename Iterator > struct apply
 
79
    {
 
80
        typedef typename apply1< advance_forward<4>,Iterator >::type chunk_result_;
 
81
        typedef typename apply1<advance_forward<( (N - 4) < 0 ? 0 : N - 4 )>,chunk_result_>::type type;
 
82
    };
 
83
};
 
84
 
 
85
} // namespace aux
 
86
} // namespace mpl
 
87
} // namespace boost
 
88