1
// preprocessed version of 'boost/mpl/aux_/iter_fold_if_impl.hpp' header
2
// see the original for copyright information
8
template< typename Iterator, typename State >
9
struct iter_fold_if_null_step
12
typedef Iterator iterator;
16
struct iter_fold_if_step_impl
26
typedef typename apply2< StateOp,State,Iterator >::type state;
27
typedef typename IteratorOp::type iterator;
32
struct iter_fold_if_step_impl<false>
43
typedef Iterator iterator;
53
struct iter_fold_if_forward_step
55
typedef typename apply2< Predicate,State,Iterator >::type not_last;
56
typedef typename iter_fold_if_step_impl<
57
BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
58
>::template result_< Iterator, State, ForwardOp, mpl::next< Iterator> > impl_;
60
typedef typename impl_::state state;
61
typedef typename impl_::iterator iterator;
70
struct iter_fold_if_backward_step
72
typedef typename apply2< Predicate,State,Iterator >::type not_last;
73
typedef typename iter_fold_if_step_impl<
74
BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
75
>::template result_< Iterator,State,BackwardOp,identity<Iterator> > impl_;
77
typedef typename impl_::state state;
78
typedef typename impl_::iterator iterator;
85
, typename ForwardPredicate
87
, typename BackwardPredicate
89
struct iter_fold_if_impl
92
typedef iter_fold_if_null_step< Iterator,State > forward_step0;
93
typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
94
typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
95
typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
96
typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
100
typename forward_step4::not_last
102
typename forward_step4::iterator
103
, typename forward_step4::state
109
, iter_fold_if_null_step<
110
typename forward_step4::iterator
111
, typename forward_step4::state
113
>::type backward_step4;
115
typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
116
typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
117
typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
118
typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
122
typedef typename backward_step0::state state;
123
typedef typename backward_step4::iterator iterator;