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.
