// 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){})>()); |