diff --git a/include/boost/lambda/detail/return_type_traits.hpp b/include/boost/lambda/detail/return_type_traits.hpp index d047344..89aad92 100644 --- a/include/boost/lambda/detail/return_type_traits.hpp +++ b/include/boost/lambda/detail/return_type_traits.hpp @@ -12,18 +12,17 @@ #ifndef BOOST_LAMBDA_RETURN_TYPE_TRAITS_HPP #define BOOST_LAMBDA_RETURN_TYPE_TRAITS_HPP +#include "boost/mpl/and.hpp" #include "boost/mpl/has_xxx.hpp" -#include +#include "boost/mpl/identity.hpp" +#include "boost/mpl/not.hpp" +#include "boost/mpl/or.hpp" #include // needed for the ptrdiff_t namespace boost { namespace lambda { -using ::boost::type_traits::ice_and; -using ::boost::type_traits::ice_or; -using ::boost::type_traits::ice_not; - // Much of the type deduction code for standard arithmetic types // from Gary Powell @@ -79,7 +78,7 @@ public: typedef typename detail::IF< // is_protectable::value && is_lambda_functor::value, - ice_and::value, is_lambda_functor::value>::value, + boost::mpl::and_ >, boost::mpl::identity > >::value, lambda_functor< lambda_functor_base< Act, @@ -114,8 +113,8 @@ namespace detail { // the args tuple typedef typename detail::IF_type< // boost::is_reference::value && !boost::is_const::value, - ice_and::value, - ice_not::value>::value>::value, + boost::mpl::and_, + boost::mpl::not_ > >::value, detail::identity_mapping, const_copy_argument // handles funtion and array >::type type; // types correctly @@ -151,9 +150,9 @@ typedef typename detail::IF< // is_protectable::value && // (is_lambda_functor::value || is_lambda_functor::value), - ice_and::value, - ice_or::value, - is_lambda_functor::value>::value>::value, + boost::mpl::and_ >, + boost::mpl::or_ >, + boost::mpl::identity > > >::value, lambda_functor< lambda_functor_base< Act, @@ -190,9 +189,9 @@ typedef typename detail::IF< // is_protectable >::value && // it is protectable // (is_lambda_functor::value || is_lambda_functor::value), - ice_and >::value, // it is protectable - ice_or::value, - is_lambda_functor::value>::value>::value, + boost::mpl::and_ > >, // it is protectable + boost::mpl::or_ >, + boost::mpl::identity > > >::value, lambda_functor< lambda_functor_base< other_action,