2 #if !defined(BOOST_PP_IS_ITERATING) 6 #ifndef BOOST_MPL_APPLY_WRAP_HPP_INCLUDED 7 #define BOOST_MPL_APPLY_WRAP_HPP_INCLUDED 21 #if !defined(BOOST_MPL_PREPROCESSING_MODE) 30 #if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ 31 && !defined(BOOST_MPL_PREPROCESSING_MODE) 33 # define BOOST_MPL_PREPROCESSED_HEADER apply_wrap.hpp 41 # include <boost/mpl/aux_/preprocessor/add.hpp> 58 # define AUX778076_APPLY_WRAP_PARAMS(n, param) \ 59 BOOST_MPL_PP_PARAMS(n, param) \ 62 # define AUX778076_APPLY_WRAP_SPEC_PARAMS(n, param) \ 63 BOOST_MPL_PP_ENUM(BOOST_PP_INC(n), param) \ 67 #define BOOST_PP_ITERATION_PARAMS_1 \ 68 (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/apply_wrap.hpp>)) 69 #include BOOST_PP_ITERATE() 72 # undef AUX778076_APPLY_WRAP_SPEC_PARAMS 73 # undef AUX778076_APPLY_WRAP_PARAMS 77 #endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS 78 #endif // BOOST_MPL_APPLY_WRAP_HPP_INCLUDED 84 #else // BOOST_PP_IS_ITERATING 85 #if BOOST_PP_ITERATION_DEPTH() == 1 87 # define i_ BOOST_PP_FRAME_ITERATION(1) 89 # if BOOST_WORKAROUND(BOOST_MSVC, < 1300) 92 #define AUX778076_MSVC_DTW_NAME BOOST_PP_CAT(msvc_apply,i_) 93 #define AUX778076_MSVC_DTW_ORIGINAL_NAME apply 94 #define AUX778076_MSVC_DTW_ARITY i_ 95 #include <boost/mpl/aux_/msvc_dtw.hpp> 103 typedef typename BOOST_PP_CAT(msvc_apply,i_)<F>::template result_<
104 AUX778076_APPLY_WRAP_PARAMS(i_,
T)
108 # elif defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) 116 #define BOOST_PP_ITERATION_PARAMS_2 \ 117 (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY - i_, <boost/mpl/apply_wrap.hpp>)) 118 #include BOOST_PP_ITERATE() 125 ::boost::mpl::aux::arity<F,i_>::value
127 BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
143 #if !BOOST_WORKAROUND(BOOST_MSVC, == 1300)
144 : F::template apply< AUX778076_APPLY_WRAP_PARAMS(i_,
T) >
148 typedef typename F::template apply<
149 AUX778076_APPLY_WRAP_PARAMS(i_,
T)
154 #if i_ == 0 && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) 155 template<
typename F >
162 # endif // workarounds 164 #if defined(BOOST_MPL_CFG_MSVC_ETI_BUG) 167 struct BOOST_PP_CAT(apply_wrap,i_)<AUX778076_APPLY_WRAP_SPEC_PARAMS(i_, int)>
177 #elif BOOST_PP_ITERATION_DEPTH() == 2 179 # define j_ BOOST_PP_FRAME_ITERATION(2) 181 #if i_ == 0 && j_ == 0 \ 182 && defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) \ 183 && !defined(BOOST_MPL_CFG_NO_HAS_APPLY) 185 template<
typename F,
bool F_has_apply >
186 struct apply_wrap_impl0_bcb {
187 typedef typename F::template apply< na >
type;
190 template<
typename F >
191 struct apply_wrap_impl0_bcb< F, true > {
192 typedef typename F::apply
type;
199 BOOST_MPL_PP_ADD(i_, j_)
201 BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
212 BOOST_MPL_PP_ADD(i_, j_)
214 BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
217 typedef typename F::template apply<
218 AUX778076_APPLY_WRAP_PARAMS(i_, T)
219 #if i_ == 0 && j_ == 0 233 #endif // BOOST_PP_ITERATION_DEPTH() 234 #endif // BOOST_PP_IS_ITERATING #define BOOST_MPL_PP_ENUM(n, param)
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
#define BOOST_PP_COMMA_IF(cond)
#define BOOST_PP_AND(p, q)
#define BOOST_PP_CAT(a, b)