1 // { dg-do compile { target c++20 } } 2 3 template<int M, int N> 4 concept equal = M == N; 5 6 template<int M> 7 struct traits 8 { 9 template<int N> requires equal<M, N> 10 struct foo {}; 11 12 template<int N> requires equal<M, N> && (M >= 0) // { dg-bogus "not more constrained" } 13 struct foo<N> {}; 14 }; 15