Boost logo

Boost :

From: Andrzej Krzemienski (akrzemi1_at_[hidden])
Date: 2021-03-02 15:08:48


wt., 2 mar 2021 o 15:05 Edward Diener via Boost <boost_at_[hidden]>
napisał(a):

> On 3/2/2021 8:48 AM, Andrzej Krzemienski via Boost wrote:
> > Hi Everyone (but mainly Peter),
> > Boost.Spirit needs to have an index-based access to user defined types,
> as
> > explained in the tutorial:
> >
> https://www.boost.org/doc/libs/1_75_0/libs/spirit/doc/x3/html/spirit_x3/tutorials/employee.html
> > Currently Boost.Spirit uses the interface of Boost.Fusion, and users are
> > encouraged to use macros like BOOST_FUSION_ADAPT_STRUCT:
> >
> https://www.boost.org/doc/libs/1_75_0/libs/fusion/doc/html/fusion/adapted/adapt_struct.html
> >
> > The first question is, can Boost.Describe's interface be plugged into
> > Boost.Spirit?
> > It is not that obvious to me for a couple of reasons. For instance, it
> > would require an interface in Boost.Describe for answering the question,
> > "has describe::members been specialized for type X"?
> >
> > The second question is, can is Boost.Describe capable of replacing the
> > adapter macros in Boost.Fusion?
> > For instance, Boost.Fusion allows the users to define and adapt a user
> > defined type with one macro:
> >
> https://www.boost.org/doc/libs/1_75_0/libs/fusion/doc/html/fusion/adapted/define_struct.html
> >
> > This is similar in concept to what macro BOOST_DEFINE_ENUM does for
> enums.
> > What is the motivation behind allowing the definition of enums in this
> way
> > but not classes (at least the aggregate classes).
> >
> > My general observation is that we have a number of libraries with
> > overlapping goals:
> > Boost.Describe,
> > Boost.PFR,
> > Boost.Fusion (the part for adapting UDTs)
> >
> > Maybe it is ok, but does it mean that there are so many incompatible use
> > cases? Maybe there is a way to reduce this number.
>
> Boost.Fusion/Boost.Spirit are C++03 libraries while Describe is a C++14
> library. So while Describe might be capable of replacing the
> BOOST_FUSION_ADAPT_STRUCT interface in Boost.Fusion I would imagine that
> Boost.Fusion/Boost.Spirit might have to upgrade their minimum C++ level
> to C++14 in order to do so.
>

Sorry, I wasn't clear. BoostSpirit comes with the x3 variant which already
requires c++14:
https://www.boost.org/doc/libs/1_75_0/libs/spirit/doc/x3/html/index.html
I meant this one only.

Regards,
&rzej;

> I agree with you that having multiple libraries use a common interface
> is certainly desired, and thought about the same thing you have
> expressed here when I read about the Describe macros.
>
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>


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