Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions src/thirdparty/axom/sol.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -14425,7 +14425,7 @@ namespace sol {
// constexpr is fine for not-clang

namespace detail {
template <typename R, typename... Args, typename F, typename = std::result_of_t<meta::unqualified_t<F>(Args...)>>
template <typename R, typename... Args, typename F, typename = std::invoke_result_t<meta::unqualified_t<F>, Args...>>
inline constexpr auto resolve_i(types<R(Args...)>, F &&) -> R (meta::unqualified_t<F>::*)(Args...) {
using Sig = R(Args...);
typedef meta::unqualified_t<F> Fu;
Expand All @@ -14449,7 +14449,7 @@ namespace sol {
return resolve_f(meta::has_deducible_signature<U>{}, std::forward<F>(f));
}

template <typename... Args, typename F, typename R = std::result_of_t<F&(Args...)>>
template <typename... Args, typename F, typename R = std::invoke_result_t<F&, Args...>>
inline constexpr auto resolve_i(types<Args...>, F&& f) -> decltype(resolve_i(types<R(Args...)>(), std::forward<F>(f))) {
return resolve_i(types<R(Args...)>(), std::forward<F>(f));
}
Expand Down Expand Up @@ -14495,7 +14495,7 @@ namespace sol {
// so don't use the constexpr versions inside of clang.

namespace detail {
template <typename R, typename... Args, typename F, typename = std::result_of_t<meta::unqualified_t<F>(Args...)>>
template <typename R, typename... Args, typename F, typename = std::invoke_result_t<meta::unqualified_t<F>, Args...>>
inline auto resolve_i(types<R(Args...)>, F &&) -> R (meta::unqualified_t<F>::*)(Args...) {
using Sig = R(Args...);
typedef meta::unqualified_t<F> Fu;
Expand All @@ -14519,7 +14519,7 @@ namespace sol {
return resolve_f(meta::has_deducible_signature<U>{}, std::forward<F>(f));
}

template <typename... Args, typename F, typename R = std::result_of_t<F&(Args...)>>
template <typename... Args, typename F, typename R = std::invoke_result_t<F&, Args...>>
inline auto resolve_i(types<Args...>, F&& f) -> decltype(resolve_i(types<R(Args...)>(), std::forward<F>(f))) {
return resolve_i(types<R(Args...)>(), std::forward<F>(f));
}
Expand Down Expand Up @@ -20652,7 +20652,7 @@ namespace sol {
}

private:
template <typename R, typename... Args, typename Fx, typename Key, typename = std::result_of_t<Fx(Args...)>>
template <typename R, typename... Args, typename Fx, typename Key, typename = std::invoke_result_t<Fx, Args...>>
void set_fx(types<R(Args...)>, Key&& key, Fx&& fx) {
set_resolved_function<R(Args...)>(std::forward<Key>(key), std::forward<Fx>(fx));
}
Expand Down
49 changes: 49 additions & 0 deletions src/thirdparty/axom/sol_invoke_result.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
diff --git a/src/thirdparty/axom/sol.hpp b/src/thirdparty/axom/sol.hpp
index 243ed4cf7..df11c0b92 100644
--- a/src/thirdparty/axom/sol.hpp
+++ b/src/thirdparty/axom/sol.hpp
@@ -14425,7 +14425,7 @@ namespace sol {
// constexpr is fine for not-clang

namespace detail {
- template <typename R, typename... Args, typename F, typename = std::result_of_t<meta::unqualified_t<F>(Args...)>>
+ template <typename R, typename... Args, typename F, typename = std::invoke_result_t<meta::unqualified_t<F>, Args...>>
inline constexpr auto resolve_i(types<R(Args...)>, F &&) -> R (meta::unqualified_t<F>::*)(Args...) {
using Sig = R(Args...);
typedef meta::unqualified_t<F> Fu;
@@ -14449,7 +14449,7 @@ namespace sol {
return resolve_f(meta::has_deducible_signature<U>{}, std::forward<F>(f));
}

- template <typename... Args, typename F, typename R = std::result_of_t<F&(Args...)>>
+ template <typename... Args, typename F, typename R = std::invoke_result_t<F&, Args...>>
inline constexpr auto resolve_i(types<Args...>, F&& f) -> decltype(resolve_i(types<R(Args...)>(), std::forward<F>(f))) {
return resolve_i(types<R(Args...)>(), std::forward<F>(f));
}
@@ -14495,7 +14495,7 @@ namespace sol {
// so don't use the constexpr versions inside of clang.

namespace detail {
- template <typename R, typename... Args, typename F, typename = std::result_of_t<meta::unqualified_t<F>(Args...)>>
+ template <typename R, typename... Args, typename F, typename = std::invoke_result_t<meta::unqualified_t<F>, Args...>>
inline auto resolve_i(types<R(Args...)>, F &&) -> R (meta::unqualified_t<F>::*)(Args...) {
using Sig = R(Args...);
typedef meta::unqualified_t<F> Fu;
@@ -14519,7 +14519,7 @@ namespace sol {
return resolve_f(meta::has_deducible_signature<U>{}, std::forward<F>(f));
}

- template <typename... Args, typename F, typename R = std::result_of_t<F&(Args...)>>
+ template <typename... Args, typename F, typename R = std::invoke_result_t<F&, Args...>>
inline auto resolve_i(types<Args...>, F&& f) -> decltype(resolve_i(types<R(Args...)>(), std::forward<F>(f))) {
return resolve_i(types<R(Args...)>(), std::forward<F>(f));
}
@@ -20652,7 +20652,7 @@ namespace sol {
}

private:
- template <typename R, typename... Args, typename Fx, typename Key, typename = std::result_of_t<Fx(Args...)>>
+ template <typename R, typename... Args, typename Fx, typename Key, typename = std::invoke_result_t<Fx, Args...>>
void set_fx(types<R(Args...)>, Key&& key, Fx&& fx) {
set_resolved_function<R(Args...)>(std::forward<Key>(key), std::forward<Fx>(fx));
}
Loading