Skip to content

Commit 4da99a1

Browse files
committed
3rdparty/sol2: Worked around apparent regression in clang 18.
When taking a pointer to a static member function template in a class template, clang reports a substitution error if the noexcept specification uses an expression that depends on class template arguments. See llvm/llvm-project#91362 on GitHub.
1 parent 4413fec commit 4da99a1

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

3rdparty/sol2/sol/sol.hpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19456,7 +19456,13 @@ namespace sol { namespace function_detail {
1945619456
}
1945719457

1945819458
template <bool is_yielding, bool no_trampoline>
19459-
static int call(lua_State* L) noexcept(std::is_nothrow_copy_assignable_v<T>) {
19459+
static int call(lua_State* L)
19460+
#if SOL_IS_ON(SOL_COMPILER_CLANG)
19461+
// apparent regression in clang 18 - llvm/llvm-project#91362
19462+
#else
19463+
noexcept(std::is_nothrow_copy_assignable_v<T>)
19464+
#endif
19465+
{
1946019466
int nr;
1946119467
if constexpr (no_trampoline) {
1946219468
nr = real_call(L);

0 commit comments

Comments
 (0)