diff -r e1b950c65cb4 -r 837f303aceeb epoc32/include/stdapis/boost/mpl/apply_fwd.hpp --- a/epoc32/include/stdapis/boost/mpl/apply_fwd.hpp Wed Mar 31 12:27:01 2010 +0100 +++ b/epoc32/include/stdapis/boost/mpl/apply_fwd.hpp Wed Mar 31 12:33:34 2010 +0100 @@ -1,3 +1,10 @@ + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_APPLY_FWD_HPP_INCLUDED +#define BOOST_MPL_APPLY_FWD_HPP_INCLUDED // Copyright Aleksey Gurtovoy 2000-2004 // @@ -5,48 +12,96 @@ // (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/apply_fwd.hpp" header -// -- DO NOT modify by hand! +// $Source: /cvsroot/boost/boost/boost/mpl/apply_fwd.hpp,v $ +// $Date: 2005/08/25 16:27:21 $ +// $Revision: 1.3 $ + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include +#endif + +#include + +#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ + && !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER apply_fwd.hpp +# include + +#else + +# include +# include +# include +# include +# include + +# include +# include +# include + +// agurt, 15/jan/02: top-level 'apply' template gives an ICE on MSVC +// (for known reasons) +#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) +# define BOOST_MPL_CFG_NO_APPLY_TEMPLATE +#endif namespace boost { namespace mpl { +// local macro, #undef-ined at the end of the header +# define AUX778076_APPLY_DEF_PARAMS(param, value) \ + BOOST_MPL_PP_DEFAULT_PARAMS( \ + BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ + , param \ + , value \ + ) \ + /**/ + +# define AUX778076_APPLY_N_COMMA_PARAMS(n, param) \ + BOOST_PP_COMMA_IF(n) \ + BOOST_MPL_PP_PARAMS(n, param) \ + /**/ + +# if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE) + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +// forward declaration template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na + typename F, AUX778076_APPLY_DEF_PARAMS(typename T, na) > struct apply; +#else +namespace aux { +template< BOOST_AUX_NTTP_DECL(int, arity_) > struct apply_chooser; +} +#endif -template< - typename F - > -struct apply0; +# endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE -template< - typename F, typename T1 - > -struct apply1; +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) +#include BOOST_PP_ITERATE() -template< - typename F, typename T1, typename T2 - > -struct apply2; -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; +# undef AUX778076_APPLY_N_COMMA_PARAMS +# undef AUX778076_APPLY_DEF_PARAMS }} +#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS +#endif // BOOST_MPL_APPLY_FWD_HPP_INCLUDED + +///// iteration + +#else +#define i_ BOOST_PP_FRAME_ITERATION(1) + +template< + typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T) + > +struct BOOST_PP_CAT(apply,i_); + +#undef i_ +#endif // BOOST_PP_IS_ITERATING