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
diff --git a/staticlibs/netd/libnetdutils/Syscalls.cpp b/staticlibs/netd/libnetdutils/Syscalls.cpp
index 9f653f7..7e1a242 100644
--- a/staticlibs/netd/libnetdutils/Syscalls.cpp
+++ b/staticlibs/netd/libnetdutils/Syscalls.cpp
@@ -26,7 +26,7 @@
// 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)...);