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.
// _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...>>