In the definition of a class template or in the definition of a member of such
a template that appears outside of the template definition,
for each non-dependent base class (
[temp.dep.type]),
if the name of the base class
or the name of a member of the
base class is the same as the name of a
template-parameter,
the base class name or member name
hides the
template-parameter
name
.