Re:Reflection for C++26
by bdd8f1df777b on Monday July 01, 2024 @10:55PM
(#40853159)
What I commonly need is JSON serialization/parsing directly with structs.
[ Parent
| on HN ]
Re:Reflection for C++26
by beached_whale on Tuesday July 02, 2024 @01:26AM
(#40853788)
They exist, for instance https://github.com/beached/daw_json_link , uses mappings of JSON <-> class members/construction. It handles a bunch of types out of the box and allows custom types to be mapped. Also, it integrates with some of the reflection like libraries out there now(Boost.Describe/Boost.PFR) and will be trivial to add C++26 static reflection when available.
Because the library doesn’t need to allocate unless the underlying types being parsed to do, it has been constexpr since C++17 too.
A bunch of people have used libraries that use macros for reflection like or PFR to integrate other C++ JSON Libraries too.
Re:Reflection for C++26
by bdd8f1df777b on Tuesday July 02, 2024 @10:05PM
(#40862169)
Without static reflection, we need to write a lot of boilerplate code, and those boilerplate is not guaranteed to stay in sync with the struct definition. That is why static reflection is sorely needed.
Re:Reflection for C++26
by beached_whale on Wednesday July 03, 2024 @01:30AM
(#40862991)
Even static reflection isn’t a panacea and we have it now the libraries like PFR that give us a reference and name of each member for aggregates. But this is the same problem for anything else using those types too. For non-aggregates we need reflection or some manual library.
I am not disagreeing, just more saying what we have now.