// PR c++/103783 // { dg-do compile { target c++20 } } template struct A { template void f1() = delete; template static void f1() requires B; template void f2() requires B; template static void f2() = delete; void g1() = delete; static void g1() requires B; void g2() requires B; static void g2() = delete; }; int main() { A a; a.f1(); // OK a.f2(); // OK a.g1(); // OK, previously rejected as ambiguous a.g2(); // OK, previously rejected as ambiguous }