Boost logo

Boost :

From: Vinícius dos Santos Oliveira (vini.ipsmaker_at_[hidden])
Date: 2020-09-22 12:51:28


Em ter., 22 de set. de 2020 às 09:22, Peter Dimov <pdimov_at_[hidden]> escreveu:
> > But I'm more excited about Boost.Hana's Struct integration actually.
>
> Is this like
>
> https://pdimov.github.io/describe/doc/html/describe.html#example_serialization
>
> or do you have something else in mind?

Yes and no. If you rely on universal serialization, you fall back to
Boost.Serialization implied ordered trees.

The TMP code could look like the example you linked (e.g. one
mp11::mp_for_each() here and there). Are you willing to submit a new
reflection library to Boost? I'd be glad to hear all about it after
Boost.JSON's review. One of such questions would be: how does it
compare to Boost.Hana's Struct?

The reason why I'm trying to delay this debate is because I know we'll
have lots of noise from non-interested parties and I'd rather not deal
with that. A couple extra days and all the unwanted noise would
vanish.

There are a few questions to sort it out:

- Do you want to enable Boost.Hana by default or use an opt-in mechanism?
- Overload rules to choose the most specific serialization.
- Integration to Boost.Serialization's extra features. This will
require a larger time investment, but has nothing to do with
Boost.Hana or integration to any other reflection library.
- And of course, concerns raised by interested stakeholders.

The end game would be:

```json
{
    "foo": 42,
    "bar": "hello world"
}
```

(de)serializes effortlessly to:

```cpp
struct Foobar
{
    int foo;
    std::string bar;
};
```

just like Go's json.Unmarshal()

-- 
Vinícius dos Santos Oliveira
https://vinipsmaker.github.io/

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