aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/cpp2a/concepts-memfun2.C
blob: e3845e4838730c63c7edb7c3397e82b04f2de71c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// 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
}