On 5/29/2010 3:48 PM, alfC wrote:
with boost.lambda I could extract the different components (Lambda and the actual value stored by value<double>) from f_expr as: get<0>(f_expr.args) //for lambda and get<1>(get<1>(f_expr.args).args) //for lambda
what is the equivalent for Boost.phoenix?,
Check out the extension mechanism (somewhere near the end) where this is documented. See composites. Essentially, while lambda uses tuples, phoenix uses fusion containers -- more or less the same, but with more horsepower (i.e. algorithms and iterators).
I read that part many times but I couldn't realize how to apply it to this case. I ended up calling
actor<LambdaExp>(at_c<0>(f_expr)) actor
(at_c<1>(at_c<1>(f_expr)))(), //or at_c<1>(at_c<1>(f_expr)).val seems to work so far (is there a make_actor?) I don't know if overall is the best solution.
Either works fine. 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