is a template and is defined in more than one
translation unit, then the preceding requirements
shall apply both to names from the template's enclosing scope used in the
template definition ([temp.nondep]
), and also to dependent names at
the point of instantiation ([temp.dep]
These requirements also apply to corresponding entities
defined within each definition of D
(including the closure types of lambda-expressions
but excluding entities defined within default arguments or
default template arguments of either D
an entity not defined within D
For each such entity and for D
the behavior is as if there is a single entity with a single definition,
including in the application of these requirements to other entities.
The entity is still declared in multiple translation units, and [basic.link]
still applies to these declarations.
appearing in the type of D
in the different declarations having distinct types, and
appearing in a default argument of D
might still denote different types in different translation units.
— end note