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
This commit is contained in:
Jonathan Wakely 2018-05-03 13:40:15 +01:00 committed by Jonathan Wakely
parent 6791489ee5
commit 9e3ef54287
2 changed files with 5 additions and 2 deletions

View File

@ -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.

View File

@ -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...>>