From a09520cdd91a87ada081b065c42256bec2be6946 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Tue, 12 Apr 2022 12:30:08 -0400 Subject: [PATCH] gdbsupport: use result_of_t instead of result_of in parallel-for.h MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit When building with -std=c++11, I get: In file included from /home/smarchi/src/binutils-gdb/gdb/unittests/parallel-for-selftests.c:22: /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/parallel-for.h:134:10: error: ‘result_of_t’ is not a member of ‘std’; did you mean ‘result_of’? 134 | std::result_of_t | ^~~~~~~~~~~ | result_of This is because result_of_t has been introduced in C++14. Use the equivalent result_of<...>::type instead. result_of and result_of_t have been removed in C++20 though, so I think we'll need some patches eventually to make the code use invoke_result instead, depending on the C++ version. Change-Id: I4817f361c0ebcdd4b32976898fc368bb302b61b9 --- gdbsupport/parallel-for.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gdbsupport/parallel-for.h b/gdbsupport/parallel-for.h index 44303abb716..713ec660306 100644 --- a/gdbsupport/parallel-for.h +++ b/gdbsupport/parallel-for.h @@ -131,13 +131,13 @@ private: template typename gdb::detail::par_for_accumulator< - std::result_of_t + typename std::result_of::type >::result_type parallel_for_each (unsigned n, RandomIt first, RandomIt last, RangeFunction callback) { - typedef typename std::result_of_t - result_type; + using result_type + = typename std::result_of::type; size_t n_threads = thread_pool::g_thread_pool->thread_count (); size_t n_elements = last - first; -- 2.30.2