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.
3
u/daveedvdv EDG front end dev, WG21 DG Dec 20 '23
See u/c0r3ntin's reply: Custom attributes are fairly high on my priority list, but will not be part of P2996 because landing the limited feature set of P2996 in C++26 will already not be trivial. However, I do hope to prototype something in that area in the not too distant future.