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 when
so converted is true
or the expression is evaluated in the context of a template definition,
the declaration has no
effect.