aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/cpp2a/concepts-pr68683.C
blob: 0a8715d91cca159e89c0492d728b353dd9448bb8 (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++/68683
// { dg-do compile { target c++20 } }

template <typename, typename>
struct is_same {
  static constexpr bool value = true;
};

template <typename T, typename U>
concept Same = is_same<T, U>::value;

template <typename T>
concept Integral = requires {
  { T () } -> Same<typename T::value_type>;
};

struct A {
  using value_type = bool;
};

int main () {
  Integral<A>;
  Integral<A>;
  return 0;
}