An entity is a value, object, reference,
structured binding,
function, enumerator, type,
class member, bit-field, template, template specialization, namespace, or
pack.
In general,
whenever a name is encountered it is necessary to determine whether that name denotes
one of these entities before continuing to parse the program that contains it.
A name used in more than one translation unit can potentially
refer to the same entity in these translation units depending on the
linkage of the name specified in each
translation unit.