2
// Copyright Aleksey Gurtovoy 2000-2004
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)
9
// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header
10
// -- DO NOT modify by hand!
12
namespace boost { namespace mpl { namespace aux {
14
/// forward declaration
23
struct iter_fold_impl;
26
struct iter_fold_chunk;
28
template<> struct iter_fold_chunk<0>
41
typedef iter0 iterator;
45
template<> struct result_< int,int,int,int >
53
template<> struct iter_fold_chunk<1>
65
typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
66
typedef typename mpl::next<iter0>::type iter1;
70
typedef iter1 iterator;
74
template<> struct result_< int,int,int,int >
82
template<> struct iter_fold_chunk<2>
94
typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
95
typedef typename mpl::next<iter0>::type iter1;
96
typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
97
typedef typename mpl::next<iter1>::type iter2;
100
typedef state2 state;
101
typedef iter2 iterator;
105
template<> struct result_< int,int,int,int >
108
typedef int iterator;
113
template<> struct iter_fold_chunk<3>
124
typedef State state0;
125
typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
126
typedef typename mpl::next<iter0>::type iter1;
127
typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
128
typedef typename mpl::next<iter1>::type iter2;
129
typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
130
typedef typename mpl::next<iter2>::type iter3;
133
typedef state3 state;
134
typedef iter3 iterator;
138
template<> struct result_< int,int,int,int >
141
typedef int iterator;
146
template<> struct iter_fold_chunk<4>
157
typedef State state0;
158
typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
159
typedef typename mpl::next<iter0>::type iter1;
160
typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
161
typedef typename mpl::next<iter1>::type iter2;
162
typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
163
typedef typename mpl::next<iter2>::type iter3;
164
typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
165
typedef typename mpl::next<iter3>::type iter4;
168
typedef state4 state;
169
typedef iter4 iterator;
173
template<> struct result_< int,int,int,int >
176
typedef int iterator;
182
struct iter_fold_chunk
192
typedef iter_fold_impl<
200
typedef iter_fold_impl<
201
( (N - 4) < 0 ? 0 : N - 4 )
202
, typename chunk_::iterator
204
, typename chunk_::state
208
typedef typename res_::state state;
209
typedef typename res_::iterator iterator;
219
struct iter_fold_step;
225
struct iter_fold_null_step
227
typedef Last iterator;
232
struct iter_fold_chunk< -1 >
242
typedef typename if_<
243
typename is_same< First,Last >::type
244
, iter_fold_null_step< Last,State >
245
, iter_fold_step< First,Last,State,ForwardOp >
248
typedef typename res_::state state;
249
typedef typename res_::iterator iterator;
253
template<> struct result_< int,int,int,int >
256
typedef int iterator;
267
struct iter_fold_step
269
typedef iter_fold_chunk< -1 >::template result_<
270
typename mpl::next<First>::type
272
, typename apply2< ForwardOp,State,First >::type
276
typedef typename chunk_::state state;
277
typedef typename chunk_::iterator iterator;
287
struct iter_fold_impl
289
::template result_< First,Last,State,ForwardOp >