Boost logo

Boost Users :

Subject: Re: [Boost-users] [lambda]
From: Joel de Guzman (joel_at_[hidden])
Date: 2010-02-26 21:46:55


On 2/27/2010 1:30 AM, Marcin Zalewski wrote:
>>> I am trying to use lambda's constructor [1] with fusion's fused [2].
>>> Fused requires that the function object passed to it has a following
>>> valid expression:
>>>
>>> boost::result_of< F(T1 ...TN)>::type
>>>
>>> Unfortunately, constructor does not support result_of.
>>
>> Use Phoenix instead of Lambda, and problem solved ;)
>
> Actually, it seems that Phoeinx's construct does not do the same thing
> as lambda's constructor. Using lambda, you can write:
>
> constructor<T>() c;
> c(arg1, ..., argn);
>
> With Phoenix, you need to give arguments ahead of time:
>
> construct<T>(ctor_arg1, ctor_arg2, ..., ctor_argN);
>
> That's not exactly the same. Lambda works out very nicely in a
> situation where it is not possible to say how many arguments will
> there be until they are collected.

That (constructor) is very easy to add as a phoenix lazy function
(just a few lines of code).

Regards,

-- 
Joel de Guzman
http://www.boostpro.com
http://spirit.sf.net
http://www.facebook.com/djowel
Meet me at BoostCon
http://www.boostcon.com/home
http://www.facebook.com/boostcon

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net