~ubuntu-branches/ubuntu/wily/davix/wily

« back to all changes in this revision

Viewing changes to deps/boost_intern/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp

  • Committer: Package Import Robot
  • Author(s): Mattias Ellert
  • Date: 2015-07-31 13:17:55 UTC
  • mfrom: (5.1.3 sid)
  • Revision ID: package-import@ubuntu.com-20150731131755-mizprbmn7ogv33te
Tags: 0.4.1-1
* Update to version 0.4.1
* Implement Multi-Arch support

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_/fold_impl.hpp" header
10
 
// -- DO NOT modify by hand!
11
 
 
12
 
namespace boost { namespace mpl { namespace aux {
13
 
 
14
 
/// forward declaration
15
 
 
16
 
template<
17
 
      int N
18
 
    , typename First
19
 
    , typename Last
20
 
    , typename State
21
 
    , typename ForwardOp
22
 
    >
23
 
struct fold_impl;
24
 
 
25
 
template<
26
 
      typename First
27
 
    , typename Last
28
 
    , typename State
29
 
    , typename ForwardOp
30
 
    >
31
 
struct fold_impl< 0,First,Last,State,ForwardOp >
32
 
{
33
 
    typedef First iter0;
34
 
    typedef State state0;
35
 
    typedef state0 state;
36
 
    typedef iter0 iterator;
37
 
};
38
 
 
39
 
template<
40
 
      typename First
41
 
    , typename Last
42
 
    , typename State
43
 
    , typename ForwardOp
44
 
    >
45
 
struct fold_impl< 1,First,Last,State,ForwardOp >
46
 
{
47
 
    typedef First iter0;
48
 
    typedef State state0;
49
 
    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
50
 
    typedef typename mpl::next<iter0>::type iter1;
51
 
    
52
 
 
53
 
    typedef state1 state;
54
 
    typedef iter1 iterator;
55
 
};
56
 
 
57
 
template<
58
 
      typename First
59
 
    , typename Last
60
 
    , typename State
61
 
    , typename ForwardOp
62
 
    >
63
 
struct fold_impl< 2,First,Last,State,ForwardOp >
64
 
{
65
 
    typedef First iter0;
66
 
    typedef State state0;
67
 
    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
68
 
    typedef typename mpl::next<iter0>::type iter1;
69
 
    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
70
 
    typedef typename mpl::next<iter1>::type iter2;
71
 
    
72
 
 
73
 
    typedef state2 state;
74
 
    typedef iter2 iterator;
75
 
};
76
 
 
77
 
template<
78
 
      typename First
79
 
    , typename Last
80
 
    , typename State
81
 
    , typename ForwardOp
82
 
    >
83
 
struct fold_impl< 3,First,Last,State,ForwardOp >
84
 
{
85
 
    typedef First iter0;
86
 
    typedef State state0;
87
 
    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
88
 
    typedef typename mpl::next<iter0>::type iter1;
89
 
    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
90
 
    typedef typename mpl::next<iter1>::type iter2;
91
 
    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
92
 
    typedef typename mpl::next<iter2>::type iter3;
93
 
    
94
 
 
95
 
    typedef state3 state;
96
 
    typedef iter3 iterator;
97
 
};
98
 
 
99
 
template<
100
 
      typename First
101
 
    , typename Last
102
 
    , typename State
103
 
    , typename ForwardOp
104
 
    >
105
 
struct fold_impl< 4,First,Last,State,ForwardOp >
106
 
{
107
 
    typedef First iter0;
108
 
    typedef State state0;
109
 
    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
110
 
    typedef typename mpl::next<iter0>::type iter1;
111
 
    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
112
 
    typedef typename mpl::next<iter1>::type iter2;
113
 
    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
114
 
    typedef typename mpl::next<iter2>::type iter3;
115
 
    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
116
 
    typedef typename mpl::next<iter3>::type iter4;
117
 
    
118
 
 
119
 
    typedef state4 state;
120
 
    typedef iter4 iterator;
121
 
};
122
 
 
123
 
template<
124
 
      int N
125
 
    , typename First
126
 
    , typename Last
127
 
    , typename State
128
 
    , typename ForwardOp
129
 
    >
130
 
struct fold_impl
131
 
{
132
 
    typedef fold_impl<
133
 
          4
134
 
        , First
135
 
        , Last
136
 
        , State
137
 
        , ForwardOp
138
 
        > chunk_;
139
 
 
140
 
    typedef fold_impl<
141
 
          ( (N - 4) < 0 ? 0 : N - 4 )
142
 
        , typename chunk_::iterator
143
 
        , Last
144
 
        , typename chunk_::state
145
 
        , ForwardOp
146
 
        > res_;
147
 
 
148
 
    typedef typename res_::state state;
149
 
    typedef typename res_::iterator iterator;
150
 
};
151
 
 
152
 
template<
153
 
      typename First
154
 
    , typename Last
155
 
    , typename State
156
 
    , typename ForwardOp
157
 
    >
158
 
struct fold_impl< -1,First,Last,State,ForwardOp >
159
 
    : fold_impl<
160
 
          -1
161
 
        , typename mpl::next<First>::type
162
 
        , Last
163
 
        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
164
 
        , ForwardOp
165
 
        >
166
 
{
167
 
};
168
 
 
169
 
template<
170
 
      typename Last
171
 
    , typename State
172
 
    , typename ForwardOp
173
 
    >
174
 
struct fold_impl< -1,Last,Last,State,ForwardOp >
175
 
{
176
 
    typedef State state;
177
 
    typedef Last iterator;
178
 
};
179
 
 
180
 
}}}