[temp.res] reads
Knowing which names are type names allows the syntax of every template to be checked. The program is ill-formed, no diagnostic required, if: [...]
a hypothetical instantiation of a template immediately following its definition would be ill-formed due to a construct that does not depend on a template parameter, or
the interpretation of such a construct in the hypothetical instantiation is different from the interpretation of the corresponding construct in any actual instantiation of the template. [...]
What does interpretation here mean? Does it mean that each token must be interpreted as the same operator/entity/whatever grammatical construct, aka syntactically equivalent? Or does it mean that it has to also be semantically equivalent, as in the equivalence defined by the ODR rule?
As a side note, [temp.variadic] has the sentence
[...] Such an instantiation does not alter the syntactic interpretation of the enclosing construct [...]
Which has the explicit "syntactic".