Boost logo

Boost :

From: Dominique Devienne (ddevienne_at_[hidden])
Date: 2021-02-25 08:21:27


On Thu, Feb 25, 2021 at 4:16 AM Peter Dimov via Boost <boost_at_[hidden]>
wrote:

> There's also a scenario where the format is predetermined, and you create
> your C++ structs to conform to it, rather than vice versa.
>

Hi Peter. That's exactly my case (just not with Boost.Serialization).

The real question is then, since those C++ struct sources are
code-generated, is it worth to invest in Boost.Describe
once in the code generator, and then use the techniques of your examples
(i.e. "compile-time" code-gen), or
update the source generator instead (i.e. "ahead-of-time" source-gen).

In my case, the (de)serialization code is already generated, but those
struct lack op== for round-trip unit-testing for example.
So is it worth to invest once in describe? And use it for both binary
serialization and op==, and perhaps later for JSON serialization,
mock generation (no example of that?), etc... Or simply update the source
generator?

Depends on complexity of use, compile-time speed, runtime overhead (if any)
compared to "hand-written code" (well, source-generated), these kind of
things.

Boost.Describe caught my eye during the BoostJSON review, and I looked at
it then.
But I haven't taken the time to investigate further. My structs notably use
optionals and
variants, of the non-standard very ad-hoc kind, so I wasn't sure how those
would fair.

But overall, I'm very interested in what Boost.Describe promises. --DD


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk