https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123752

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to John Drouhard from comment #8)
> Right :) I realize that, sorry I phrased my reply that way since I'm
> actually just curious what the discussions behind the decision to put it in
> the standard were. You can use a placeholder name (as you suggested), but
> that seems like a workaround for something that should actually be optional
> (the name). Either way, thanks for pointing out that it's there.

It isn't really optional when not using reflection, all non-static data members
with the exception of bit-fields have to be named (except for anonymous unions
but that is something define_aggregate is not meant to provide).  And the
classes created by define_aggregate can be used anywhere, so it isn't something
that would follow different rules.  So, especially now that C++ has a supported
way (placeholder names) to handle that, that is what should be used when you
don't care about the exact names.

That said, I'm not a WG21 member and wasn't there when this was decided, so
you'd need to ask some WG21 members.

Reply via email to