Boost logo

Boost :

Subject: Re: [boost] About all these metaprogramming libraries
From: Oswin Krause (Oswin.Krause_at_[hidden])
Date: 2017-03-19 18:43:35


On 2017-03-19 17:13, Bruno Dutra via Boost wrote:
> On Sun, Mar 19, 2017 at 4:22 PM, degski via Boost
> <boost_at_[hidden]>
> wrote:
>
>> I must say, I like Peters' 'simple' mp11 though,
>> providing building blocks to more advanced stuff (I would say
>> (generally)
>> the STL-spirit).
>>
>
> I agree being simple is a plus, but IMO there is nothing exceptionally
> simple about mp11.

Hi,

I would disagree. Conceptionally it is a lot easier to grasp as
everything is defined either in language primitives or logical
constraints.

Here are the concepts:

A list is any type of the form L<T...>.
A set is a list where all elements are unique
A map is a set of keys zipped with an arbitrary list of same size.
A metafunction is a template alias with unspecified template parameters.

The definition of the concepts do not need to reference any primitive
inside the library and thus it can work well with many other of the
proposed libraries and libraries outside of boost, without having to
jump through additional hoops (e.g. renaming/"copying" arguments).

For me the biggest question is: will it work natively with mpl::vector?
This would make it a clear winner in my book.


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