Boost logo

Boost Users :

Subject: Re: [Boost-users] [lambda]
From: Marcin Zalewski (marcin.zalewski_at_[hidden])
Date: 2010-02-26 12:30:52


>> 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.

-m


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