On Sep 30, 2020, at 7:57 AM, Peter Dimov via Boost
wrote: Andrzej Krzemienski wrote:
My ideal solution would be if these two libraries (PFR and Describe) would be merged into one, so that: 1. They provide the same interface 2. A user can easily instruct the library: "this is an aggregate: figure out the mapping yourself".
The two libraries don't really overlap, even though they enable the same functionality. Describe gives you member names (and other things such as member functions, inherited members and base classes), but it requires explicit registration; PFR only gives you references to the data members, but works without registration. There's no reasonable way for the two to be merged.
I don’t think he means “become one” - I think he means since Describe feels almost like a superset of PFR, but PFR is simpler/easier for pure aggregates due to no registration, perhaps Describe could copy the API of PFR for the overlap. That way changing your code from using PFR to Describe when your type is no longer an aggregate, could be made easier. (The reverse direction would never be simple) I have no idea if such a thing is possible or practical, but it would be cool. :) -hadriel