diff --git a/include/boost/fusion/support/detail/result_of.hpp b/include/boost/fusion/support/detail/result_of.hpp index e15fea5e..ff48dac9 100644 --- a/include/boost/fusion/support/detail/result_of.hpp +++ b/include/boost/fusion/support/detail/result_of.hpp @@ -8,6 +8,11 @@ #define FUSION_RESULT_OF_10272014_0654 #include +#if !(defined(BOOST_NO_CXX11_DECLTYPE) || defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)) +#include +#include +#include +#endif namespace boost { namespace fusion { namespace detail { @@ -16,7 +21,7 @@ namespace boost { namespace fusion { namespace detail // low level code. So far this is used only in the fold algorithm. This will // be removed once we overhaul fold. -#if defined(BOOST_NO_CXX11_DECLTYPE) +#if defined(BOOST_NO_CXX11_DECLTYPE) || defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) template struct result_of_with_decltype : boost::tr1_result_of {}; @@ -31,9 +36,9 @@ namespace boost { namespace fusion { namespace detail template struct result_of_with_decltype - : mpl::if_, detail::has_result>, + : mpl::if_, detail::has_result >, boost::tr1_result_of, - boost::detail::cpp0x_result_of>::type {}; + boost::detail::cpp0x_result_of >::type {}; #endif