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:

It seems to have been lost in Phoenix-3:

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]:

Most definitely!


Joel de Guzman

Boost list run by bdawes at, gregod at, cpdaniel at, john at