diff --git a/include/boost/mpl/if.hpp b/include/boost/mpl/if.hpp index cec109a..c29ca00 100644 --- a/include/boost/mpl/if.hpp +++ b/include/boost/mpl/if.hpp @@ -23,11 +23,12 @@ #include "boost/mpl/aux_/void_spec.hpp" #include "boost/mpl/aux_/lambda_support.hpp" #include "boost/mpl/aux_/config/workaround.hpp" -#include "boost/mpl/aux_/config/use_preprocessed.hpp" #include "boost/config.hpp" #if !defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT) # include "boost/mpl/arg_fwd.hpp" +# include "boost/mpl/aux_/preprocessor/params.hpp" +# include "boost/mpl/aux_/preprocessor/default_params.hpp" #endif namespace boost { @@ -142,8 +143,7 @@ BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(3, if_) -#if !defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT) \ - && !defined(BOOST_MPL_NO_PREPROCESSED_HEADERS) +#if !defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT) // Aleksey, check it out: lazy if_ evaluation in lambdas! // I think this doesn't handle the case of @@ -179,6 +179,21 @@ BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(3, if_) // so that after the 2nd bind we have a different function depending // on the result of is_reference. +# define AUX_BIND_PARAMS(param) \ + BOOST_MPL_PP_PARAMS( \ + BOOST_MPL_METAFUNCTION_MAX_ARITY \ + , param \ + ) \ + /**/ + +# define AUX_BIND_DEFAULT_PARAMS(param, value) \ + BOOST_MPL_PP_DEFAULT_PARAMS( \ + BOOST_MPL_METAFUNCTION_MAX_ARITY \ + , param \ + , value \ + ) \ + /**/ + template struct bind3; template