https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109169
--- Comment #12 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Right and I am saying it is hard to support in a parser. That is exactly why the language requires the template keyword here is to distinguish and help out the parser. Basically I am saying the whole point of template here is to help the parser out to figure out what it should be next otherwise it cannot figure out. How msvc implements without it, I don't know and really don't care.