On Sat, Nov 12, 2022 at 11:37 AM Aaron Ballman via Ext <ext@lists.isocpp.org> wrote:
Further, we are not convinced the effects of this paper are in the
best interests of users. The result of voting in favor of this
proposal is for this code to be diagnosed in C++11 mode:

[[deprecated("this has a reason")]] int foo;
[[nodiscard("this also has a reason")]] int func();

because this proposes, as a DR, to require an implementation to
diagnose the syntactic violation of providing an attribute argument
list when the grammar does not allow one for these attributes in that
language mode.

[re-post for ext reflector and liaison mailing list; apologies to those getting duplicates]

Implementations are free to (and probably should) make such a case issue a diagnostic only when strict conformance is requested.

Users requesting strict conformance arguably are well-served by being told that they are using a feature from a newer standard. It might motivate them to actually move to the newer standard.