https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90189
Aleksey Covacevice <aleksey.covacevice at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aleksey.covacevice at gmail dot co | |m --- Comment #1 from Aleksey Covacevice <aleksey.covacevice at gmail dot com> --- Another such situation: template<typename> struct any; template<typename T> using any_t = typename any<T>::type; template<typename... type> struct str { any_t<any_t<str<type...>>> func(); }; Changing `type` to something else, in either `any_t` or `str`, allows the code to compile. 5.1.0 accepts the code; 5.2.0 onward reject it. Possibly related to #61022.