https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128342
--- Comment #3 from Drea Pinski <pinskia at gcc dot gnu.org> --- "In these contexts[1], a < token is always assumed to introduce a template-argument-list. In all other contexts, when naming a template specialization of a member of an unknown specialization" [1] refers to " typename-specifier (13.8 [temp.res]), elaborated-type-specifier (9.2.9.5 [dcl.type.elab]), using-declaration (9.10 [namespace.udecl]), or class-or-decltype" You missed that part. In this case this is "typename-specifier".
