Use C++20 compatible std::invoke_result instead of std::result_of_t

Change-Id: I52ccd82f801af64de03d9076096755c52c1d8b37
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Serg Kryvonos
2023-12-13 04:58:39 -08:00
parent 7cc970ce5a
commit 650ab0841b

View File

@@ -253,7 +253,7 @@ template<template<typename> class C, // result container type
typename SC, // input container type
typename F, // function type
typename Value = typename std::decay_t<SC>::value_type,
typename Result = std::decay_t<std::result_of_t<F(Value &)>>,
typename Result = std::decay_t<typename std::invoke_result<F, Value&>::type>,
typename ResultContainer = C<Result>>
Q_REQUIRED_RESULT decltype(auto) transform(SC &&container, F function);
#ifdef Q_CC_CLANG
@@ -270,7 +270,7 @@ template<template<typename, typename> class C, // result container type
typename SC, // input container type
typename F, // function type
typename Value = typename std::decay_t<SC>::value_type,
typename Result = std::decay_t<std::result_of_t<F(Value &)>>,
typename Result = std::decay_t<typename std::invoke_result<F, Value&>::type>,
typename ResultContainer = C<Result, std::allocator<Result>>>
Q_REQUIRED_RESULT decltype(auto) transform(SC &&container, F function);
#endif