Hello everyone, 

The differences can be quickly summarized as follows : 

- the reflection API is typed
- the reflection domain includes statements and expressions (so we're able to traverse a function's body, for example) 
- anything that can be reflected, can be constructed/injected. so we can create expressions, statements, or declarations. Our use cases cover operators generation/interface generation (member functions synthesis), symbolic differentiation (expressions traversal and synthesis), string matching (statements synthesis), and static analysis (statements/expressions traversal, inspection of functions parameters), among other things.  
- we can emit diagnostics at compile-time, and transform value of builtin types to text (we've also constexpr-ised std::format to help emit diagnostics)

This is of course a very brief summary of the differences, and they will hopefully be better demonstrated by the articles.

-Jean-Baptiste


Le ven. 16 févr. 2024 à 20:57, David Sankel via SG7 <sg7@lists.isocpp.org> a écrit :
Thanks for sending this out Hana. It would be great if someone could succinctly summarize how this differs from what was already forwarded to EWG.

On Tue, Feb 13, 2024 at 11:44 AM Hana Dusíková via SG7 <sg7@lists.isocpp.org> wrote:
Hello SG7!

Jean-Baptiste Vallon Hoarau and Joel Falcou recently contacted me as they work on on a prototype of reflection (different than P2996 as they started a while ago) and it's an interesting design. They just announced a blogpost about it.

Hana

--
SG7 mailing list
SG7@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/sg7
--
SG7 mailing list
SG7@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/sg7