diff --git a/include/boost/mpl/aux_/apply.hpp b/include/boost/mpl/aux_/apply.hpp index 43ef845..96e3f74 100644 --- a/include/boost/mpl/aux_/apply.hpp +++ b/include/boost/mpl/aux_/apply.hpp @@ -24,6 +24,12 @@ BOOST_PP_CAT(BOOST_MPL_AUX_APPLY,arity) args \ /**/ +// agurt, 14/nov/02: temporary fix, need to research a couple of ICEs to +// get rid of this mess +#if defined(BOOST_MSVC) && BOOST_MSVC == 1300 && !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/apply.hpp" +#endif + #if defined(BOOST_MPL_USE_APPLY_INTERNALLY) \ || defined(BOOST_BROKEN_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES) \ || defined(BOOST_MSVC) && (BOOST_MSVC < 1300 || BOOST_MSVC == 1300 && defined(BOOST_MPL_PREPROCESSING_MODE)) diff --git a/include/boost/mpl/aux_/iter_fold_if_impl.hpp b/include/boost/mpl/aux_/iter_fold_if_impl.hpp index 1611e69..3e60394 100644 --- a/include/boost/mpl/aux_/iter_fold_if_impl.hpp +++ b/include/boost/mpl/aux_/iter_fold_if_impl.hpp @@ -23,6 +23,7 @@ # include "boost/mpl/identity.hpp" # include "boost/mpl/next.hpp" # include "boost/mpl/if.hpp" +# include "boost/mpl/aux_/value_wknd.hpp" # include "boost/mpl/aux_/bool_value_wknd.hpp" #endif @@ -99,7 +100,7 @@ struct iter_fold_if_forward_step { typedef typename BOOST_MPL_AUX_APPLY2(Predicate,State,Iterator)::type not_last; typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value >::template result_< Iterator,State,ForwardOp,next > impl_; typedef typename impl_::state state; @@ -116,7 +117,7 @@ struct iter_fold_if_backward_step { typedef typename BOOST_MPL_AUX_APPLY2(Predicate,State,Iterator)::type not_last; typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value >::template result_< Iterator,State,BackwardOp,identity > impl_; typedef typename impl_::state state;