The attribute may be applied to the declaration of
a class,
a typedef-name,
a variable,
a non-static data member,
a function,
a namespace,
an enumeration,
an enumerator,
a concept, or
a template specialization.
Recommended practice: Implementations should use the deprecated attribute to produce a diagnostic
message in case the program refers to a name or entity other than to declare it, after a
declaration that specifies the attribute.
The diagnostic message should include the text provided
within the attribute-argument-clause of any deprecated attribute applied
to the name or entity.
The value of
a has-attribute-expression for the deprecated attribute
should be 0
unless the implementation can issue such diagnostic messages.