Le vendredi 24 juin 2022 à 12:46 +0000, Hadriel Kaplan via Boost a écrit :
By the way Julien, I was going to suggest something eventually that might be… controversial, but since Richard brought them up I’ll mention it now:
I think this thing should automatically handle more than just Boost.Describe. I think it should try to handle magic_enum and wise_enum’s generated-enum-info too.
That would make it usable by a much broader user base.
That should not be too hard to do, but could require some additions in
these libraries. Basically, what is needed is a way to transform the
enumeration values list into a corresponding integer list, which then
gets feeded to the default_indexer – and of course a way to do compile-
time detection of the fact that the enum has some introspection (like
has_describe_enumerators). At that point, all the machinery is already
in place. For example, describe integration is only 25 lines of code.
Out of the box this should already work for wise-enum:
indexed_array
If that’s technically challenging to do, then I think you should approach the authors of them and ask to “normalize” whatever needs to be the same, to make them all usable with this.
I don’t know how they’d respond, but it would be really cool if people could start writing things like index_array that supports all of them.
That would indeed be a nice addition. I'll try to see what can be done here. Best regards, Julien