* include/std/future (__async_result_of): Use __invoke_result instead
        of result_of.

Tested powerpc64le-linux, committed to trunk.

commit b5db9a5482919074071cf9ae7922ad4b8b34549d
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Wed May 2 20:56:28 2018 +0100

    Use std::invoke_result in std::async instead of std::result_of
    
            * include/std/future (__async_result_of): Use __invoke_result 
instead
            of result_of.

diff --git a/libstdc++-v3/include/std/future b/libstdc++-v3/include/std/future
index f9ad5666f52..c17a253d26e 100644
--- a/libstdc++-v3/include/std/future
+++ b/libstdc++-v3/include/std/future
@@ -181,8 +181,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   // _GLIBCXX_RESOLVE_LIB_DEFECTS
   // 2021. Further incorrect usages of result_of
   template<typename _Fn, typename... _Args>
-    using __async_result_of = typename result_of<
-      typename decay<_Fn>::type(typename decay<_Args>::type...)>::type;
+    using __async_result_of = typename __invoke_result<
+      typename decay<_Fn>::type, typename decay<_Args>::type...>::type;
 
   template<typename _Fn, typename... _Args>
     future<__async_result_of<_Fn, _Args...>>

Reply via email to