diff --git a/include/boost/fusion/functional/invocation/invoke_function_object.hpp b/include/boost/fusion/functional/invocation/invoke_function_object.hpp index 748d5b4b..ad742265 100644 --- a/include/boost/fusion/functional/invocation/invoke_function_object.hpp +++ b/include/boost/fusion/functional/invocation/invoke_function_object.hpp @@ -27,10 +27,9 @@ #include #include #include -#include #include #include -#include +#include #include namespace boost { namespace fusion @@ -116,7 +115,7 @@ namespace boost { namespace fusion typedef typename boost::result_of< #define M(z,j,data) \ typename boost::remove_reference< \ - typename result_of::value_at_c::type >::type + typename result_of::at_c::type >::type Function (BOOST_PP_ENUM(N,M,~)) >::type result_type; #undef M @@ -161,14 +160,12 @@ namespace boost { namespace fusion { #if N > 0 typedef typename result_of::begin::type I0; - typedef typename boost::remove_reference< - typename result_of::value_of::type >::type T0; + typedef typename result_of::deref::type T0; #define M(z,i,data) \ typedef typename result_of::next< \ BOOST_PP_CAT(I,BOOST_PP_DEC(i))>::type I##i; \ - typedef typename boost::remove_reference< \ - typename result_of::value_of::type >::type T##i; + typedef typename result_of::deref::type T##i; BOOST_PP_REPEAT_FROM_TO(1,N,M,~) #undef M