Switch from std::result_of to std::invoke_result

std::result_of is deprecated in C++17 and removed in C++20.
std::invoke_result is added in C++17.

Upstream libc++ has started removing the declaration of std::result_of
when a new-enough C++ dialect is selected, so switch to the supported
type.

Bug: http://b/175635923
Test: treehugger
Change-Id: Ie2db3e092b4300e20858097ac4e88ebaedc7ae07
This commit is contained in:
Ryan Prichard
2022-08-26 20:31:55 -07:00
parent 8a8bd3734f
commit 8cbe32c501

View File

@@ -26,7 +26,7 @@ namespace {
// Retry syscall fn as long as it returns -1 with errno == EINTR
template <typename FnT, typename... Params>
typename std::result_of<FnT(Params...)>::type syscallRetry(FnT fn, Params&&... params) {
typename std::invoke_result<FnT, Params...>::type syscallRetry(FnT fn, Params&&... params) {
auto rv = fn(std::forward<Params>(params)...);
while ((rv == -1) && (errno == EINTR)) {
rv = fn(std::forward<Params>(params)...);