bolt/deps/llvm-18.1.8/clang/test/SemaCXX/gh53815.cpp

22 lines
567 B
C++
Raw Normal View History

2025-02-14 19:21:04 +01:00
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++20 %s
// expected-no-diagnostics
// Check that we don't crash due to forgetting to check for placeholders
// in the RHS of '.*'.
template <typename Fn>
static bool has_explicitly_named_overload() {
return requires { Fn().*&Fn::operator(); };
}
int main() {
has_explicitly_named_overload<decltype([](auto){})>();
}
template <typename Fn>
constexpr bool has_explicitly_named_overload_2() {
return requires { Fn().*&Fn::operator(); };
}
static_assert(!has_explicitly_named_overload_2<decltype([](auto){})>());