~ubuntu-branches/ubuntu/saucy/merkaartor/saucy

« back to all changes in this revision

Viewing changes to include/builtin-boost/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp

Tags: upstream-0.15.3+svn20934
ImportĀ upstreamĀ versionĀ 0.15.3+svn20934

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/aux_/advance_backward.hpp" header
 
10
// -- DO NOT modify by hand!
 
11
 
 
12
namespace boost { namespace mpl { namespace aux {
 
13
 
 
14
template< long N > struct advance_backward;
 
15
template<>
 
16
struct advance_backward<0>
 
17
{
 
18
    template< typename Iterator > struct apply
 
19
    {
 
20
        typedef Iterator iter0;
 
21
        typedef iter0 type;
 
22
    };
 
23
};
 
24
 
 
25
template<>
 
26
struct advance_backward<1>
 
27
{
 
28
    template< typename Iterator > struct apply
 
29
    {
 
30
        typedef Iterator iter0;
 
31
        typedef typename prior<iter0>::type iter1;
 
32
        typedef iter1 type;
 
33
    };
 
34
};
 
35
 
 
36
template<>
 
37
struct advance_backward<2>
 
38
{
 
39
    template< typename Iterator > struct apply
 
40
    {
 
41
        typedef Iterator iter0;
 
42
        typedef typename prior<iter0>::type iter1;
 
43
        typedef typename prior<iter1>::type iter2;
 
44
        typedef iter2 type;
 
45
    };
 
46
};
 
47
 
 
48
template<>
 
49
struct advance_backward<3>
 
50
{
 
51
    template< typename Iterator > struct apply
 
52
    {
 
53
        typedef Iterator iter0;
 
54
        typedef typename prior<iter0>::type iter1;
 
55
        typedef typename prior<iter1>::type iter2;
 
56
        typedef typename prior<iter2>::type iter3;
 
57
        typedef iter3 type;
 
58
    };
 
59
};
 
60
 
 
61
template<>
 
62
struct advance_backward<4>
 
63
{
 
64
    template< typename Iterator > struct apply
 
65
    {
 
66
        typedef Iterator iter0;
 
67
        typedef typename prior<iter0>::type iter1;
 
68
        typedef typename prior<iter1>::type iter2;
 
69
        typedef typename prior<iter2>::type iter3;
 
70
        typedef typename prior<iter3>::type iter4;
 
71
        typedef iter4 type;
 
72
    };
 
73
};
 
74
 
 
75
template< long N >
 
76
struct advance_backward
 
77
{
 
78
    template< typename Iterator > struct apply
 
79
    {
 
80
        typedef typename apply_wrap1<
 
81
              advance_backward<4>
 
82
            , Iterator
 
83
            >::type chunk_result_;
 
84
 
 
85
        typedef typename apply_wrap1<
 
86
              advance_backward<(
 
87
                (N - 4) < 0
 
88
                    ? 0
 
89
                    : N - 4
 
90
                    )>
 
91
            , chunk_result_
 
92
            >::type type;
 
93
    };
 
94
};
 
95
 
 
96
}}}
 
97