On 2022-12-19 at 12:32, Sébastien Bini via Std-Proposals wrote:
> With the updated rules, if std::pair has the
> [[no_parameter_reloc(auto)]]attribute, then std::pair<MyString,int>
> opts-out, while std::pair<MyString,UserDefinedOptInType> opts-in.
> I am also thinking of allowing a function attribute to opt-out on
> function level for tricky cases.
> Anyone have some thoughts on the matter?
At least originally, there was a basic idea that ignoring an attribute
should not affect the validity of a program. Like [[nodiscard]] and
[[maybe_unused]] would affect warnings, but not the generated code.
Adding ABI-modifying attributes seems to be totally contrary to this.
Modifying ABI does not affect the validity of a program; since ABI is unspecified, a sufficiently perverse compiler could use a different ABI on each execution.