Boost logo

Boost :

Subject: Re: [boost] [phoenix] default constructable stateless lambdas
From: Joel de Guzman (djowel_at_[hidden])
Date: 2012-09-24 19:56:49


On 9/25/12 3:01 AM, Eric Niebler wrote:
> While answering a question about Phoenix on stackoverflow[^1], I
> discovered that Phoenix lambda types are default-constructable, so long
> as all the terminals are also default constructable. That's handy when
> the terminals are stateless. Can it (the default-constructability) be
> relied on? It doesn't appear to be documented.

Phoenix-2 required that:
   http://tinyurl.com/c2y8q2z

It seems to have been lost in Phoenix-3:
   http://tinyurl.com/92fxbze

I think it should be reinstated.

> C++11 lambdas have the nice property that stateless ones are implicitly
> convertible to raw function pointers. This can be implemented for
> Phoenix if we can rely on the default-constructability of Phoenix lambda
> types. In my stackoverflow answer I show how. It'd be pretty cool if
> this were a standard part of all Phoenix lambdas. Is there interest?
>
> Incidentally, I think it's really, really cool that Phoenix allows this
> kind of extensibility. It's a very nice example of the benefits of the
> introspection capabilities built into Phoenix. Perhaps this could be
> worked into the docs somehow?
>
> [^1]:
> http://stackoverflow.com/questions/10144948/static-functions-from-boost-lambda-or-boost-phoenix/12326204#12326204

Most definitely!

Regards,

-- 
Joel de Guzman
http://www.boostpro.com
http://boost-spirit.com

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