summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/sol2/sol/resolve.hpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/sol2/sol/resolve.hpp')
-rw-r--r--3rdparty/sol2/sol/resolve.hpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/3rdparty/sol2/sol/resolve.hpp b/3rdparty/sol2/sol/resolve.hpp
index 30e0400d755..acd372dd772 100644
--- a/3rdparty/sol2/sol/resolve.hpp
+++ b/3rdparty/sol2/sol/resolve.hpp
@@ -26,9 +26,10 @@
#include "tuple.hpp"
namespace sol {
- // Clang has distinct problems with constexpr arguments,
- // so don't use the constexpr versions inside of clang.
+
#ifndef __clang__
+ // 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...)>>
inline constexpr auto resolve_i(types<R(Args...)>, F&&)->R(meta::unqualified_t<F>::*)(Args...) {
@@ -95,6 +96,10 @@ namespace sol {
return detail::resolve_i(types<Sig...>(), std::forward<F>(f));
}
#else
+
+ // Clang has distinct problems with constexpr arguments,
+ // 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...)>>
inline auto resolve_i(types<R(Args...)>, F&&)->R(meta::unqualified_t<F>::*)(Args...) {
@@ -160,7 +165,9 @@ namespace sol {
inline auto resolve(F&& f) -> decltype(detail::resolve_i(types<Sig...>(), std::forward<F>(f))) {
return detail::resolve_i(types<Sig...>(), std::forward<F>(f));
}
+
#endif
+
} // sol
#endif // SOL_RESOLVE_HPP