Index: result_of.hpp =================================================================== --- result_of.hpp (revision 66478) +++ result_of.hpp (working copy) @@ -75,11 +75,38 @@ template struct is_function_with_no_args : mpl::true_ {}; -template +template struct result_of_nested_result : F::template result {}; +#if !defined(BOOST_NO_LAMBDAS) +#if _MSC_FULL_VER>=160030319 +template +struct FP +{ + typedef decltype(&T::operator()) type; +}; + template +struct result_of_nested_result::type>::type>::type> +{ + template + struct extractor; + + template + struct extractor + { + typedef R type; + }; + + typedef typename extractor::type>::type type; +}; +#endif // _MSC_FULL_VER>=0x160030319 +#endif // !BOOST_NO_LAMBDAS + +template struct tr1_result_of_impl : mpl::if_, result_of_void_impl,