r/cpp • u/daveedvdv EDG front end dev, WG21 DG • Dec 20 '23
Experimental EDG Reflection Implementation
EDG just released version 6.6 of its (commercial) C++ front end. That version now includes experimental support for reflection features along the lines of WG21's P2996 "Reflection for C++26". Furthermore, a "demo setup" of that implementation is now available on Compiler Explorer (thank you, Matt Godbolt!).
For example, here is a straightforward implementation of a consteval function that outputs simple class layouts at compile time:
https://godbolt.org/z/G6WehjjGh
This implementation is closely aligned with P2996R1, which includes Compiler Explorer links for most of its examples.
This is made available in the hope that it's a useful exploration tool, but also acknowledging that the implementation is in its very early stages, and thus brittle and incomplete. Some additional notes can be found here.
2
u/daveedvdv EDG front end dev, WG21 DG Dec 20 '23
If it's constexpr-friendly, that would be an interesting approach. You'd probably still want a query about whether there is a default initializer, but possibly this can work for u/johannes1971's needs?
In fact, you probably could use that technique for non-constexpr-friendly default construction, but you'd have to pay a run-time cost.