// PR c++/92103 // { dg-do compile { target c++20 } } template struct traits { template struct equal_to { static constexpr bool value = false; }; template requires (M == N) struct equal_to { static constexpr bool value = true; }; template requires (M < 0) || (N < 0) struct equal_to { }; }; 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" }