associates the use of a name with a set of declarations ([basic.def]
If the declarations found by name lookup
all denote functions or function templates,
the declarations are said to form an overload set.
The declarations found by name lookup shall either
all denote the same entity or form an overload set.
The access rules ([class.access]
are considered only once name lookup and
function overload resolution (if applicable) have succeeded.
name lookup, function overload resolution (if applicable) and access
checking have succeeded
are the semantic properties introduced by the name's declaration
and its reachable ([module.reach]
used further in expression processing ([expr]