https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89741
--- Comment #11 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Tadeus Prastowo from comment #7) > The code in question, which is simplified below to match the real use-case, > does not involve template specialization, and so, the quoted passage does > not apply: As Jakub said, the rule refers to all template specializations, not just partial specializations and explicit specializations. X is a template, X<0> is a specialization of that template.