Boost logo

Boost :

Subject: Re: [boost] Efficient tuple implementation
From: Agustín K-ballo Bergé (kaballo86_at_[hidden])
Date: 2014-06-12 14:26:22


On 12/06/2014 02:59 p.m., Larry Evans wrote:
> On 06/06/14 21:56, Agustín K-ballo Bergé wrote:
>> On 06/06/2014 11:18 p.m., Louis Dionne wrote:
>>> Hi,
>>>
>>> I recently discovered (or maybe not) a neat trick to implement a
>>> tuple-like
>>> container. The technique has a couple of drawbacks which I will
>>> explain later.
>>> For a real example, you can see my list implementation in Boost.Hana
>>> at [1].
> [snip]
>>> The idea is to use the capture of the lambda as a fast
>>> compiler-generated
>>> struct with the desired members. By passing a function to that
>>> lambda, we
>>> get an access to the unpacked representation of those members and we can
>>> then apply any fast algorithm on parameter packs.
>>>
>>
>> We have experimented with lambdas in Spirit.X3 as a way to drastically
>> reduce compile times (although not in the form of tuples),
>
> Are you referring to the make_opaque mentioned here:
>
> http://article.gmane.org/gmane.comp.parsers.spirit.general/26634
>
> or something else? If something else, could we have a peek at it
> somewhere?
>

Yes, I was referring to `make_opaque` (and the debate that followed on
IRC). The goal was to hide the excessively long symbol names generated
by a fusion map of expression templates. Then Joel came up with the idea
of representing those maps via ADL instead.

Regards,

-- 
Agustín K-ballo Bergé.-
http://talesofcpp.fusionfenix.com

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