The locus of the implicit declaration of
a function-local predefined variable ([dcl.fct.def.general])
is immediately before
the function-body of its function's definition.
The locus of the declaration of a structured binding ([dcl.struct.bind])
is immediately after
the identifier-list of the structured binding declaration.
[Example 5: typedefunsignedchar T;
template<class T
= T // lookup finds the typedef-name
, T // lookup finds the template parameter
N =0>struct A {};
— end example]
Friend declarations can introduce functions or classes
that belong to the nearest enclosing namespace or block scope,
but they do not bind names anywhere ([class.friend]).
Function declarations at block scope and
variable declarations with the extern specifier at block scope
declare entities
that belong to the nearest enclosing namespace,
but they do not bind names in it.