diff -r e1b950c65cb4 -r 837f303aceeb epoc32/include/stdapis/boost/mpl/aux_/fold_impl.hpp --- a/epoc32/include/stdapis/boost/mpl/aux_/fold_impl.hpp Wed Mar 31 12:27:01 2010 +0100 +++ b/epoc32/include/stdapis/boost/mpl/aux_/fold_impl.hpp Wed Mar 31 12:33:34 2010 +0100 @@ -1,3 +1,6 @@ + +#ifndef BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED // Copyright Aleksey Gurtovoy 2000-2004 // @@ -5,176 +8,36 @@ // (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // +// See http://www.boost.org/libs/mpl for documentation. -// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header -// -- DO NOT modify by hand! +// $Source: /cvsroot/boost/boost/boost/mpl/aux_/fold_impl.hpp,v $ +// $Date: 2004/09/02 15:40:43 $ +// $Revision: 1.6 $ -namespace boost { namespace mpl { namespace aux { +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include <boost/mpl/next_prior.hpp> +# include <boost/mpl/apply.hpp> +# include <boost/mpl/deref.hpp> +# include <boost/mpl/aux_/config/ctps.hpp> +# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +# include <boost/mpl/if.hpp> +# include <boost/type_traits/is_same.hpp> +# endif +#endif -/// forward declaration +#include <boost/mpl/aux_/config/use_preprocessed.hpp> -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; +#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; +# define BOOST_MPL_PREPROCESSED_HEADER fold_impl.hpp +# include <boost/mpl/aux_/include_preprocessed.hpp> -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1; - typedef typename mpl::next<iter0>::type iter1; - +#else - typedef state1 state; - typedef iter1 iterator; -}; +# define AUX778076_FOLD_IMPL_OP(iter) typename deref<iter>::type +# define AUX778076_FOLD_IMPL_NAME_PREFIX fold +# include <boost/mpl/aux_/fold_impl_body.hpp> -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1; - typedef typename mpl::next<iter0>::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2; - typedef typename mpl::next<iter1>::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1; - typedef typename mpl::next<iter0>::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2; - typedef typename mpl::next<iter1>::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3; - typedef typename mpl::next<iter2>::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1; - typedef typename mpl::next<iter0>::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2; - typedef typename mpl::next<iter1>::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3; - typedef typename mpl::next<iter2>::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4; - typedef typename mpl::next<iter3>::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl -{ - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,First,Last,State,ForwardOp > - : fold_impl< - -1 - , typename mpl::next<First>::type - , Last - , typename apply2<ForwardOp,State, typename deref<First>::type>::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} +#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS +#endif // BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED