// { dg-do compile { target c++20 } } template struct iterator_traits { private: template struct ptr { }; template requires requires { typename J::X; } struct ptr { }; template requires (!requires { typename J::X; } && requires { typename J::Y; }) struct ptr { }; };