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]
The declaration shall contain at most one sb-identifier
whose identifier is preceded by an ellipsis.
If the declaration contains any such sb-identifier,
it shall declare a templated entity ([temp.pre]).
[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]).