template struct traits { template struct nested { using type = void; }; template requires requires { typename U::type; } struct nested { using type = typename U::type; }; }; using V = traits::nested::type;