aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/cpp2a/concepts-pr92078.C
blob: 6df9b852fb1b49638f6fdbc2695c592ba4b30b24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// { dg-do compile { target c++20 } }

template<typename I>
struct iterator_traits
{
private:
  template<typename Iter>
  struct ptr
  { };

  template<typename J>
    requires requires { typename J::X; }
  struct ptr<J>
  { };

  template<typename J>
    requires (!requires { typename J::X; } && requires { typename J::Y; })
  struct ptr<J>
  { };
};