Unless otherwise stated, utterances in
[dcl.dcl] about components in, of, or contained by a
declaration or subcomponent thereof refer only to those components of
the declaration that are not nested within scopes nested within
the declaration.
In the declaration for an entity, attributes appertaining to that
entity can appear at the start of the declaration and after the
declarator-id for that declaration.
— end note]
[Example 1: [[noreturn]]void f [[noreturn]](); // OK — end example]
[Example 3: template<class T>concept C =true;
C auto[x, y]= std::pair{1, 2}; // error: constrained placeholder-type-specifier// not permitted for structured bindings — end example]
[Example 4: int f(), x; // OK, function declaration for f and object declaration for xexternvoid g(), // OK, function declaration for g
y; // error: void is not an object type — end example]
If the value of the expression E when so converted is true or
the expression is evaluated in the context of a template definition,
the declaration has no effect and
the static_assert-message is
an unevaluated operand ([expr.context]).