1
// preprocessed version of 'boost/mpl/aux_/fold_backward_impl.hpp' header
2
// see the original for copyright information
17
struct fold_backward_impl;
26
struct fold_backward_impl< 0,First,Last,State,BackwardOp,ForwardOp >
29
typedef State fwd_state0;
30
typedef fwd_state0 bkwd_state0;
31
typedef bkwd_state0 state;
32
typedef iter0 iterator;
42
struct fold_backward_impl< 1,First,Last,State,BackwardOp,ForwardOp >
45
typedef State fwd_state0;
46
typedef typename apply2<ForwardOp, fwd_state0, typename iter0::type>::type fwd_state1;
47
typedef typename iter0::next iter1;
50
typedef fwd_state1 bkwd_state1;
51
typedef typename apply2<BackwardOp, bkwd_state1, typename iter0::type>::type bkwd_state0;
52
typedef bkwd_state0 state;
53
typedef iter1 iterator;
63
struct fold_backward_impl< 2,First,Last,State,BackwardOp,ForwardOp >
66
typedef State fwd_state0;
67
typedef typename apply2<ForwardOp, fwd_state0, typename iter0::type>::type fwd_state1;
68
typedef typename iter0::next iter1;
69
typedef typename apply2<ForwardOp, fwd_state1, typename iter1::type>::type fwd_state2;
70
typedef typename iter1::next iter2;
73
typedef fwd_state2 bkwd_state2;
74
typedef typename apply2<BackwardOp, bkwd_state2, typename iter1::type>::type bkwd_state1;
75
typedef typename apply2<BackwardOp, bkwd_state1, typename iter0::type>::type bkwd_state0;
78
typedef bkwd_state0 state;
79
typedef iter2 iterator;
89
struct fold_backward_impl< 3,First,Last,State,BackwardOp,ForwardOp >
92
typedef State fwd_state0;
93
typedef typename apply2<ForwardOp, fwd_state0, typename iter0::type>::type fwd_state1;
94
typedef typename iter0::next iter1;
95
typedef typename apply2<ForwardOp, fwd_state1, typename iter1::type>::type fwd_state2;
96
typedef typename iter1::next iter2;
97
typedef typename apply2<ForwardOp, fwd_state2, typename iter2::type>::type fwd_state3;
98
typedef typename iter2::next iter3;
101
typedef fwd_state3 bkwd_state3;
102
typedef typename apply2<BackwardOp, bkwd_state3, typename iter2::type>::type bkwd_state2;
103
typedef typename apply2<BackwardOp, bkwd_state2, typename iter1::type>::type bkwd_state1;
104
typedef typename apply2<BackwardOp, bkwd_state1, typename iter0::type>::type bkwd_state0;
107
typedef bkwd_state0 state;
108
typedef iter3 iterator;
115
, typename BackwardOp
118
struct fold_backward_impl< 4,First,Last,State,BackwardOp,ForwardOp >
121
typedef State fwd_state0;
122
typedef typename apply2<ForwardOp, fwd_state0, typename iter0::type>::type fwd_state1;
123
typedef typename iter0::next iter1;
124
typedef typename apply2<ForwardOp, fwd_state1, typename iter1::type>::type fwd_state2;
125
typedef typename iter1::next iter2;
126
typedef typename apply2<ForwardOp, fwd_state2, typename iter2::type>::type fwd_state3;
127
typedef typename iter2::next iter3;
128
typedef typename apply2<ForwardOp, fwd_state3, typename iter3::type>::type fwd_state4;
129
typedef typename iter3::next iter4;
132
typedef fwd_state4 bkwd_state4;
133
typedef typename apply2<BackwardOp, bkwd_state4, typename iter3::type>::type bkwd_state3;
134
typedef typename apply2<BackwardOp, bkwd_state3, typename iter2::type>::type bkwd_state2;
135
typedef typename apply2<BackwardOp, bkwd_state2, typename iter1::type>::type bkwd_state1;
136
typedef typename apply2<BackwardOp, bkwd_state1, typename iter0::type>::type bkwd_state0;
139
typedef bkwd_state0 state;
140
typedef iter4 iterator;
148
, typename BackwardOp
151
struct fold_backward_impl
154
typedef State fwd_state0;
155
typedef typename apply2<ForwardOp, fwd_state0, typename iter0::type>::type fwd_state1;
156
typedef typename iter0::next iter1;
157
typedef typename apply2<ForwardOp, fwd_state1, typename iter1::type>::type fwd_state2;
158
typedef typename iter1::next iter2;
159
typedef typename apply2<ForwardOp, fwd_state2, typename iter2::type>::type fwd_state3;
160
typedef typename iter2::next iter3;
161
typedef typename apply2<ForwardOp, fwd_state3, typename iter3::type>::type fwd_state4;
162
typedef typename iter3::next iter4;
165
typedef fold_backward_impl<
166
( (N - 4) < 0 ? 0 : N - 4 )
174
typedef typename nested_chunk::state bkwd_state4;
175
typedef typename apply2<BackwardOp, bkwd_state4, typename iter3::type>::type bkwd_state3;
176
typedef typename apply2<BackwardOp, bkwd_state3, typename iter2::type>::type bkwd_state2;
177
typedef typename apply2<BackwardOp, bkwd_state2, typename iter1::type>::type bkwd_state1;
178
typedef typename apply2<BackwardOp, bkwd_state1, typename iter0::type>::type bkwd_state0;
181
typedef bkwd_state0 state;
182
typedef typename nested_chunk::iterator iterator;
189
, typename BackwardOp
192
struct fold_backward_impl< -1,First,Last,State,BackwardOp,ForwardOp >
194
typedef fold_backward_impl<
196
, typename First::next
198
, typename apply2<ForwardOp, State, typename First::type>::type
203
typedef typename apply2<BackwardOp, typename nested_step::state, typename First::type>::type state;
204
typedef typename nested_step::iterator iterator;
210
, typename BackwardOp
213
struct fold_backward_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
216
typedef Last iterator;