diff options
author | Lancelot Six <lancelot.six@amd.com> | 2023-10-13 12:39:55 +0000 |
---|---|---|
committer | Lancelot Six <lancelot.six@amd.com> | 2023-11-21 11:52:36 +0000 |
commit | 70d02be7e369e8763bf3238eb7c6ae7f9efb5429 (patch) | |
tree | 459590d351ef1d66cd99734dca5f80448eea3b47 /gdbsupport | |
parent | 393be56421a81e44c8728c8b31df66b319697398 (diff) | |
download | fsf-binutils-gdb-70d02be7e369e8763bf3238eb7c6ae7f9efb5429.zip fsf-binutils-gdb-70d02be7e369e8763bf3238eb7c6ae7f9efb5429.tar.gz fsf-binutils-gdb-70d02be7e369e8763bf3238eb7c6ae7f9efb5429.tar.bz2 |
gdbsupport: Replace gdb::invoke_result with std::invoke_result
Given that GDB now requires C++17, we can replace gdb::invoke_result
with std::invoke_result which is provided by <type_traits>.
This patch also removes gdbsupport/invoke-result.h as it is not used
anymore.
Change-Id: I7e567356d38d6b3d85d8797d61cfc83f6f933f22
Approved-By: Tom Tromey <tom@tromey.com>
Approved-By: Pedro Alves <pedro@palves.net>
Diffstat (limited to 'gdbsupport')
-rw-r--r-- | gdbsupport/filtered-iterator.h | 4 | ||||
-rw-r--r-- | gdbsupport/function-view.h | 4 | ||||
-rw-r--r-- | gdbsupport/invoke-result.h | 37 | ||||
-rw-r--r-- | gdbsupport/parallel-for.h | 9 | ||||
-rw-r--r-- | gdbsupport/safe-iterator.h | 4 |
5 files changed, 10 insertions, 48 deletions
diff --git a/gdbsupport/filtered-iterator.h b/gdbsupport/filtered-iterator.h index 9e9548e..aa33669 100644 --- a/gdbsupport/filtered-iterator.h +++ b/gdbsupport/filtered-iterator.h @@ -19,7 +19,7 @@ #ifndef COMMON_FILTERED_ITERATOR_H #define COMMON_FILTERED_ITERATOR_H -#include "gdbsupport/invoke-result.h" +#include <type_traits> /* A filtered iterator. This wraps BaseIterator and automatically skips elements that FilterFunc filters out. Requires that @@ -56,7 +56,7 @@ public: : filtered_iterator (static_cast<const filtered_iterator &> (other)) {} - typename gdb::invoke_result<decltype(&BaseIterator::operator*), + typename std::invoke_result<decltype(&BaseIterator::operator*), BaseIterator>::type operator* () const { return *m_it; } diff --git a/gdbsupport/function-view.h b/gdbsupport/function-view.h index cd62d40..ed113c7 100644 --- a/gdbsupport/function-view.h +++ b/gdbsupport/function-view.h @@ -192,7 +192,7 @@ You can find unit tests covering the whole API in unittests/function-view-selftests.c. */ -#include "invoke-result.h" +#include <type_traits> namespace gdb { namespace fv_detail { @@ -230,7 +230,7 @@ class function_view<Res (Args...)> /* True if Func can be called with Args, and either the result is Res, convertible to Res or Res is void. */ template<typename Callable, - typename Res2 = typename gdb::invoke_result<Callable &, Args...>::type> + typename Res2 = typename std::invoke_result<Callable &, Args...>::type> struct IsCompatibleCallable : CompatibleReturnType<Res2, Res> {}; diff --git a/gdbsupport/invoke-result.h b/gdbsupport/invoke-result.h deleted file mode 100644 index c9bb55e..0000000 --- a/gdbsupport/invoke-result.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Compatibility wrapper around std::result_of and std::invoke_result. - - Copyright (C) 2022-2023 Free Software Foundation, Inc. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -#ifndef GDBSUPPORT_INVOKE_RESULT_H -#define GDBSUPPORT_INVOKE_RESULT_H - -#include <type_traits> - -namespace gdb -{ -#if __cplusplus >= 201703L -template<typename Callable, class... Args> -using invoke_result = std::invoke_result<Callable, Args...>; -#else -template<typename Callable, typename... Args> -using invoke_result = std::result_of<Callable (Args...)>; -#endif - -} /* namespace gdb */ - -#endif /* GDBSUPPORT_INVOKE_RESULT_H */ diff --git a/gdbsupport/parallel-for.h b/gdbsupport/parallel-for.h index b57f7ea..ee7bfd9 100644 --- a/gdbsupport/parallel-for.h +++ b/gdbsupport/parallel-for.h @@ -22,7 +22,6 @@ #include <algorithm> #include <type_traits> -#include "gdbsupport/invoke-result.h" #include "gdbsupport/thread-pool.h" #include "gdbsupport/function-view.h" @@ -145,14 +144,14 @@ private: template<class RandomIt, class RangeFunction> typename gdb::detail::par_for_accumulator< - typename gdb::invoke_result<RangeFunction, RandomIt, RandomIt>::type + typename std::invoke_result<RangeFunction, RandomIt, RandomIt>::type >::result_type parallel_for_each (unsigned n, RandomIt first, RandomIt last, RangeFunction callback, gdb::function_view<size_t(RandomIt)> task_size = nullptr) { using result_type - = typename gdb::invoke_result<RangeFunction, RandomIt, RandomIt>::type; + = typename std::invoke_result<RangeFunction, RandomIt, RandomIt>::type; /* If enabled, print debug info about how the work is distributed across the threads. */ @@ -305,13 +304,13 @@ parallel_for_each (unsigned n, RandomIt first, RandomIt last, template<class RandomIt, class RangeFunction> typename gdb::detail::par_for_accumulator< - typename gdb::invoke_result<RangeFunction, RandomIt, RandomIt>::type + typename std::invoke_result<RangeFunction, RandomIt, RandomIt>::type >::result_type sequential_for_each (unsigned n, RandomIt first, RandomIt last, RangeFunction callback, gdb::function_view<size_t(RandomIt)> task_size = nullptr) { - using result_type = typename gdb::invoke_result<RangeFunction, RandomIt, RandomIt>::type; + using result_type = typename std::invoke_result<RangeFunction, RandomIt, RandomIt>::type; gdb::detail::par_for_accumulator<result_type> results (0); diff --git a/gdbsupport/safe-iterator.h b/gdbsupport/safe-iterator.h index ccd772c..b489132 100644 --- a/gdbsupport/safe-iterator.h +++ b/gdbsupport/safe-iterator.h @@ -19,7 +19,7 @@ #ifndef COMMON_SAFE_ITERATOR_H #define COMMON_SAFE_ITERATOR_H -#include "gdbsupport/invoke-result.h" +#include <type_traits> /* A forward iterator that wraps Iterator, such that when iterating with iterator IT, it is possible to delete *IT without invalidating @@ -77,7 +77,7 @@ public: basic_safe_iterator () {} - typename gdb::invoke_result<decltype(&Iterator::operator*), Iterator>::type + typename std::invoke_result<decltype(&Iterator::operator*), Iterator>::type operator* () const { return *m_it; } |