On that note, something like a "nameof" operator that just returns an ASCIIz as some "const char (&name)[N]" would "print an enum" or "make a config form with these things on it, specialized templates determine the widget types" etc... very easy, and the programmer has the choice of looping over arrays into which such data is unpacked, or employing template metaprogramming in some way.

On Fri, Sep 22, 2023 at 10:50 PM Chris Gary <cgary512@gmail.com> wrote:
:D
It ought to be, IMO.
What else is there left to do?

When it comes to reflection, do I really need to do anything else but "walk" public members in the same way?

Something like "OrdinaryStruct ...clone;" then "clone<5>;" is easy to verify, eliminates the need for special accessors, and resembles the other use-cases mentioned.

Private members are none of anything else's business, functions can be inspected using concepts, and most use-cases for what's left for reflection that I've encountered are really just serialization/marshalling of structs with no private members (e.g. RPC parameter packs or handling form data for a UI).

On Fri, Sep 22, 2023 at 10:10 PM Thiago Macieira via Std-Proposals <std-proposals@lists.isocpp.org> wrote:
On Friday, 22 September 2023 11:50:35 PDT Chris Gary via Std-Proposals wrote:
>   // Unpack public type members of MiscData in declaration order.
>   // Unpack public value members of a MiscData instance in the same order.
>   Mirror< MiscData... > clone{ data... };

This looks like reflection.

--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel DCAI Cloud Engineering



--
Std-Proposals mailing list
Std-Proposals@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals