26 Feb
2010
26 Feb
'10
5:30 p.m.
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