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
;
31 struct iter_fold_impl
< 0,First
,Last
,State
,ForwardOp
>
36 typedef iter0 iterator
;
45 struct iter_fold_impl
< 1,First
,Last
,State
,ForwardOp
>
49 typedef typename apply2
< ForwardOp
,state0
,iter0
>::type state1
;
50 typedef typename
mpl::next
<iter0
>::type iter1
;
54 typedef iter1 iterator
;
63 struct iter_fold_impl
< 2,First
,Last
,State
,ForwardOp
>
67 typedef typename apply2
< ForwardOp
,state0
,iter0
>::type state1
;
68 typedef typename
mpl::next
<iter0
>::type iter1
;
69 typedef typename apply2
< ForwardOp
,state1
,iter1
>::type state2
;
70 typedef typename
mpl::next
<iter1
>::type iter2
;
74 typedef iter2 iterator
;
83 struct iter_fold_impl
< 3,First
,Last
,State
,ForwardOp
>
87 typedef typename apply2
< ForwardOp
,state0
,iter0
>::type state1
;
88 typedef typename
mpl::next
<iter0
>::type iter1
;
89 typedef typename apply2
< ForwardOp
,state1
,iter1
>::type state2
;
90 typedef typename
mpl::next
<iter1
>::type iter2
;
91 typedef typename apply2
< ForwardOp
,state2
,iter2
>::type state3
;
92 typedef typename
mpl::next
<iter2
>::type iter3
;
96 typedef iter3 iterator
;
105 struct iter_fold_impl
< 4,First
,Last
,State
,ForwardOp
>
108 typedef State state0
;
109 typedef typename apply2
< ForwardOp
,state0
,iter0
>::type state1
;
110 typedef typename
mpl::next
<iter0
>::type iter1
;
111 typedef typename apply2
< ForwardOp
,state1
,iter1
>::type state2
;
112 typedef typename
mpl::next
<iter1
>::type iter2
;
113 typedef typename apply2
< ForwardOp
,state2
,iter2
>::type state3
;
114 typedef typename
mpl::next
<iter2
>::type iter3
;
115 typedef typename apply2
< ForwardOp
,state3
,iter3
>::type state4
;
116 typedef typename
mpl::next
<iter3
>::type iter4
;
119 typedef state4 state
;
120 typedef iter4 iterator
;
130 struct iter_fold_impl
132 typedef iter_fold_impl
<
140 typedef iter_fold_impl
<
141 ( (N
- 4) < 0 ? 0 : N
- 4 )
142 , typename
chunk_::iterator
144 , typename
chunk_::state
148 typedef typename
res_::state state
;
149 typedef typename
res_::iterator iterator
;
158 struct iter_fold_impl
< -1,First
,Last
,State
,ForwardOp
>
161 , typename
mpl::next
<First
>::type
163 , typename apply2
< ForwardOp
,State
,First
>::type
174 struct iter_fold_impl
< -1,Last
,Last
,State
,ForwardOp
>
177 typedef Last iterator
;