4 ms·
What I commonly need is JSON serialization/parsing directly with structs.
by bdd8f1df777b 2y ago
What I commonly need is JSON serialization/parsing directly with structs.
- beached_whale 2y agoThey exist, for instance https://github.com/beached/daw_json_link 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.
- bdd8f1df777b 2y agoWithout 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.
- beached_whale 2y agoEven 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.