Hi Matus,
Do you have an implementation of some commonly requested reflection-based algorithms? E.g. : automatic serialization, hashing, "pretty print", classes registration, automatic binary operators generation, this sort of thing.
Otherwise it is similar to the meta::info proposal and currently it is more useful and powerful because it is not limited by pure consteval
Could you clarify what you mean by this? What does this proposal do that P2320 proposal cannot?
If/when the issues with consteval are fixed (for example the ability to change function return type based on the value of a non-template consteval argument)
I don't think this will ever happen.
Also, unless I am overlooking something, there is no need for that : if the goal is to produce a value whose type depends on the value of the reflection, then, assuming the code splicing of P2320, this can be done by a fragment containing your "meta-algorithm", and injecting it into the context where the type is known. So in the case of a enum-to-string function, the consteval function return the fragment containing the switch, and the runtime function template inject it, see
https://compiler-explorer.com/z/PEb8s8b3M (i forgot how to implement enum to string on clang-meta, but this illustrate the pattern). In these simple cases this is largely the same as a template instantiation.