mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
'typename' disambiguates a qualified dependent name, telling the compiler that something like T::iterator names a type rather than a value. Before a plain identifier there is nothing to disambiguate: P1 is already a type, and so is PopupIndex. The grammar wants a qualified name after the keyword, so clang reports "expected a qualified name after 'typename'", drops the keyword and carries on -- 15175 times, since the offending declarations sit in widely included headers. MSVC accepts them without a word. Semantics do not change. Both compilers already ignored the keyword, so the partial specialisations matched before this and match after it. The diagnostic belongs to no -W group and therefore cannot be switched off with -Wno-, which makes deleting the tokens the only way to quiet it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>