21 lines
567 B
C++
21 lines
567 B
C++
// 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){})>());
|