1.1 --- a/epoc32/include/stdapis/boost/mpl/aux_/fold_impl.hpp Wed Mar 31 12:27:01 2010 +0100
1.2 +++ b/epoc32/include/stdapis/boost/mpl/aux_/fold_impl.hpp Wed Mar 31 12:33:34 2010 +0100
1.3 @@ -1,3 +1,6 @@
1.4 +
1.5 +#ifndef BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED
1.6 +#define BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED
1.7
1.8 // Copyright Aleksey Gurtovoy 2000-2004
1.9 //
1.10 @@ -5,176 +8,36 @@
1.11 // (See accompanying file LICENSE_1_0.txt or copy at
1.12 // http://www.boost.org/LICENSE_1_0.txt)
1.13 //
1.14 +// See http://www.boost.org/libs/mpl for documentation.
1.15
1.16 -// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header
1.17 -// -- DO NOT modify by hand!
1.18 +// $Source: /cvsroot/boost/boost/boost/mpl/aux_/fold_impl.hpp,v $
1.19 +// $Date: 2004/09/02 15:40:43 $
1.20 +// $Revision: 1.6 $
1.21
1.22 -namespace boost { namespace mpl { namespace aux {
1.23 +#if !defined(BOOST_MPL_PREPROCESSING_MODE)
1.24 +# include <boost/mpl/next_prior.hpp>
1.25 +# include <boost/mpl/apply.hpp>
1.26 +# include <boost/mpl/deref.hpp>
1.27 +# include <boost/mpl/aux_/config/ctps.hpp>
1.28 +# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
1.29 +# include <boost/mpl/if.hpp>
1.30 +# include <boost/type_traits/is_same.hpp>
1.31 +# endif
1.32 +#endif
1.33
1.34 -/// forward declaration
1.35 +#include <boost/mpl/aux_/config/use_preprocessed.hpp>
1.36
1.37 -template<
1.38 - int N
1.39 - , typename First
1.40 - , typename Last
1.41 - , typename State
1.42 - , typename ForwardOp
1.43 - >
1.44 -struct fold_impl;
1.45 +#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
1.46 + && !defined(BOOST_MPL_PREPROCESSING_MODE)
1.47
1.48 -template<
1.49 - typename First
1.50 - , typename Last
1.51 - , typename State
1.52 - , typename ForwardOp
1.53 - >
1.54 -struct fold_impl< 0,First,Last,State,ForwardOp >
1.55 -{
1.56 - typedef First iter0;
1.57 - typedef State state0;
1.58 - typedef state0 state;
1.59 - typedef iter0 iterator;
1.60 -};
1.61 +# define BOOST_MPL_PREPROCESSED_HEADER fold_impl.hpp
1.62 +# include <boost/mpl/aux_/include_preprocessed.hpp>
1.63
1.64 -template<
1.65 - typename First
1.66 - , typename Last
1.67 - , typename State
1.68 - , typename ForwardOp
1.69 - >
1.70 -struct fold_impl< 1,First,Last,State,ForwardOp >
1.71 -{
1.72 - typedef First iter0;
1.73 - typedef State state0;
1.74 - typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
1.75 - typedef typename mpl::next<iter0>::type iter1;
1.76 -
1.77 +#else
1.78
1.79 - typedef state1 state;
1.80 - typedef iter1 iterator;
1.81 -};
1.82 +# define AUX778076_FOLD_IMPL_OP(iter) typename deref<iter>::type
1.83 +# define AUX778076_FOLD_IMPL_NAME_PREFIX fold
1.84 +# include <boost/mpl/aux_/fold_impl_body.hpp>
1.85
1.86 -template<
1.87 - typename First
1.88 - , typename Last
1.89 - , typename State
1.90 - , typename ForwardOp
1.91 - >
1.92 -struct fold_impl< 2,First,Last,State,ForwardOp >
1.93 -{
1.94 - typedef First iter0;
1.95 - typedef State state0;
1.96 - typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
1.97 - typedef typename mpl::next<iter0>::type iter1;
1.98 - typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
1.99 - typedef typename mpl::next<iter1>::type iter2;
1.100 -
1.101 -
1.102 - typedef state2 state;
1.103 - typedef iter2 iterator;
1.104 -};
1.105 -
1.106 -template<
1.107 - typename First
1.108 - , typename Last
1.109 - , typename State
1.110 - , typename ForwardOp
1.111 - >
1.112 -struct fold_impl< 3,First,Last,State,ForwardOp >
1.113 -{
1.114 - typedef First iter0;
1.115 - typedef State state0;
1.116 - typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
1.117 - typedef typename mpl::next<iter0>::type iter1;
1.118 - typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
1.119 - typedef typename mpl::next<iter1>::type iter2;
1.120 - typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
1.121 - typedef typename mpl::next<iter2>::type iter3;
1.122 -
1.123 -
1.124 - typedef state3 state;
1.125 - typedef iter3 iterator;
1.126 -};
1.127 -
1.128 -template<
1.129 - typename First
1.130 - , typename Last
1.131 - , typename State
1.132 - , typename ForwardOp
1.133 - >
1.134 -struct fold_impl< 4,First,Last,State,ForwardOp >
1.135 -{
1.136 - typedef First iter0;
1.137 - typedef State state0;
1.138 - typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
1.139 - typedef typename mpl::next<iter0>::type iter1;
1.140 - typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
1.141 - typedef typename mpl::next<iter1>::type iter2;
1.142 - typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
1.143 - typedef typename mpl::next<iter2>::type iter3;
1.144 - typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
1.145 - typedef typename mpl::next<iter3>::type iter4;
1.146 -
1.147 -
1.148 - typedef state4 state;
1.149 - typedef iter4 iterator;
1.150 -};
1.151 -
1.152 -template<
1.153 - int N
1.154 - , typename First
1.155 - , typename Last
1.156 - , typename State
1.157 - , typename ForwardOp
1.158 - >
1.159 -struct fold_impl
1.160 -{
1.161 - typedef fold_impl<
1.162 - 4
1.163 - , First
1.164 - , Last
1.165 - , State
1.166 - , ForwardOp
1.167 - > chunk_;
1.168 -
1.169 - typedef fold_impl<
1.170 - ( (N - 4) < 0 ? 0 : N - 4 )
1.171 - , typename chunk_::iterator
1.172 - , Last
1.173 - , typename chunk_::state
1.174 - , ForwardOp
1.175 - > res_;
1.176 -
1.177 - typedef typename res_::state state;
1.178 - typedef typename res_::iterator iterator;
1.179 -};
1.180 -
1.181 -template<
1.182 - typename First
1.183 - , typename Last
1.184 - , typename State
1.185 - , typename ForwardOp
1.186 - >
1.187 -struct fold_impl< -1,First,Last,State,ForwardOp >
1.188 - : fold_impl<
1.189 - -1
1.190 - , typename mpl::next<First>::type
1.191 - , Last
1.192 - , typename apply2<ForwardOp,State, typename deref<First>::type>::type
1.193 - , ForwardOp
1.194 - >
1.195 -{
1.196 -};
1.197 -
1.198 -template<
1.199 - typename Last
1.200 - , typename State
1.201 - , typename ForwardOp
1.202 - >
1.203 -struct fold_impl< -1,Last,Last,State,ForwardOp >
1.204 -{
1.205 - typedef State state;
1.206 - typedef Last iterator;
1.207 -};
1.208 -
1.209 -}}}
1.210 +#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
1.211 +#endif // BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED