The attribute may be applied to the declaration of a class,
a typedef-name,
a variable (including a structured binding declaration),
a non-static data member,
a function, an enumeration, or an enumerator.
Recommended practice:
For an entity marked maybe_unused,
implementations should not emit a warning
that the entity or its structured bindings (if any)
are used or unused.
For a structured binding declaration not marked maybe_unused,
implementations should not emit such a warning unless
all of its structured bindings are unused.