aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2018-05-03 13:40:15 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2018-05-03 13:40:15 +0100
commit9e3ef542877ac62a46e21703ca105f733c47bb64 (patch)
tree38e8c9b995a45a2d69265fc14ee2e09aa16db903
parent6791489ee5214b0181aa22adc250cbbde1897a5c (diff)
downloadgcc-9e3ef542877ac62a46e21703ca105f733c47bb64.zip
gcc-9e3ef542877ac62a46e21703ca105f733c47bb64.tar.gz
gcc-9e3ef542877ac62a46e21703ca105f733c47bb64.tar.bz2
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. From-SVN: r259888
-rw-r--r--libstdc++-v3/ChangeLog3
-rw-r--r--libstdc++-v3/include/std/future4
2 files changed, 5 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 692a468..9356e47 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,8 @@
2018-05-03 Jonathan Wakely <jwakely@redhat.com>
+ * include/std/future (__async_result_of): Use __invoke_result instead
+ of result_of.
+
* include/std/any (any_cast): Use __remove_cvref_t.
* include/std/tuple (__make_tuple): Likewise.
* include/std/type_traits (__remove_cvref_t): Define.
diff --git a/libstdc++-v3/include/std/future b/libstdc++-v3/include/std/future
index f9ad566..c17a253 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...>>