blob: 5b3afce3bc7081dff745aece0215873690f76fff (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
// PR c++/92103
// { dg-do compile { target c++20 } }
template<int M>
struct traits
{
template<int N>
struct equal_to
{ static constexpr bool value = false; };
template<int N> requires (M == N)
struct equal_to<N>
{ static constexpr bool value = true; };
template<int N> requires (M < 0) || (N < 0)
struct equal_to<N>
{ };
};
static_assert(traits<0>::equal_to<0>::value);
static_assert(!traits<0>::equal_to<1>::value);
static_assert(traits<-1>::equal_to<0>::value); // { dg-error "not a member" }
|