Boost logo

Boost :

Subject: Re: [boost] [metal] Feature Complete - Request for Feedback
From: Paul Fultz II (pfultz2_at_[hidden])
Date: 2017-02-22 01:33:24


> On Feb 21, 2017, at 1:16 PM, Bruno Dutra via Boost <boost_at_[hidden]> wrote:
>
>
> Your example is implemented in Metal like this
>
> using _ = metal::transform<metal::lambda<std::add_const_t>,
> metal::as_list<std::shared_ptr<X>>>; // metal::list<X const>
> metal::apply<metal::lambda<std::shared_ptr>, _> // std::shared_ptr<X const>
>
> Admittedly a bit verbosier, but not too bad.
> .

I like this. Its explicit and fast, which I think is good for something that is core. From there you could build other frontends that simplify it more by deducing the explicit types and then passing them to the core components.

Another thing I saw is that you no longer support gcc 4.8. Why is that? As a core library, I would expect good portability, since the portability limitations don’t just affect Metal but also any libraries that decide to use it(or perhaps replace mpl with it).

Ideally, it would be nice if it supported gcc 4.6(even only partially), as I would use it in my Tick library and get rid of my homebrew metaprogamming. However, I know that might be a lot of work since gcc 4.6 doesn’t have template aliases.

Paul


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