diff options
author | 2017-02-05 16:01:50 +0100 | |
---|---|---|
committer | 2017-02-05 16:06:06 +0100 | |
commit | ac096aa2a0921efde96b76252dffb119dcf27efc (patch) | |
tree | 2ad9a28a7f6babce8cfcbf5995e3e055ff13ff60 /3rdparty/sol2/sol/resolve.hpp | |
parent | 29df715138452ee18ba19ec4b07e18c4b3185de7 (diff) |
Update sol2 (nw)
Diffstat (limited to '3rdparty/sol2/sol/resolve.hpp')
-rw-r--r-- | 3rdparty/sol2/sol/resolve.hpp | 11 |
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 |