https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119059
friedkeenan at protonmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |friedkeenan at protonmail dot
com
--- Comment #6 from friedkeenan at protonmail dot com ---
I'm not sure where is best to note this, but it would appear that this is also
relevant for GCC's implementation of `std::meta::define_aggregate` when applied
to union types.
On GCC 16, if one calls `define_aggregate` on a union type and gives it fields
which aren't trivially destructible, then the union type ends up with a deleted
destructor, instead of what is intended by P2996 which is for the union type to
have an empty, non-deleted destructor. And that's needed for the paper's
"simple variant type" example to work.
On trunk, `define_aggregate` works as expected, presumably because of the
implementation of this paper.
I'm not sure what the best way of dealing with that discrepancy would be, or if
it needs dealing with at all, but I wanted to make sure that the discrepancy
was known to you all.