
On Tuesday, September 25, 2012 07:56:49 Joel de Guzman wrote:
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. *nod*
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-la mbda-or-boost-phoenix/12326204#12326204 Most definitely!
Woah. this is insanely cool! Let's have it I say! (I'd say feel free to commit the changes and drop us a note when you are done)
Regards,