(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp2a/
concepts-memfun2.C
// PR c++/103783
// { dg-do compile { target c++20 } }

template<bool B>
struct A {
  template<class...> void f1() = delete;
  template<class...> static void f1() requires B;

  template<class...> void f2() requires B;
  template<class...> static void f2() = delete;

  void g1() = delete;
  static void g1() requires B;

  void g2() requires B;
  static void g2() = delete;
};

int main() {
  A<true> a;
  a.f1(); // OK
  a.f2(); // OK
  a.g1(); // OK, previously rejected as ambiguous
  a.g2(); // OK, previously rejected as ambiguous
}