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

template <class> struct all_same {
  static constexpr bool value = true;
};

template <class T> 
concept Assignable = requires(T t)
{
  requires all_same<decltype(t = 0)>::value;
};

template <class I> 
  requires (!Assignable<I>)
int dispatch();

template <class I>
  requires Assignable<I>
void dispatch();

int main() { dispatch<int *>(); }