On Thu, Jun 2, 2011 at 12:32 PM, Alexander Khomyak <Alexander.Khomyak@cbossgroup.com> wrote:

Hi.

 

According lambda documentation there is a possibility to use function call operator in lambda expression. But I can’t compile following code using MS Visual Studio 2003.NET compiler:

 

#include <boost/lambda/lambda.hpp>

using namespace boost::lambda;

 

int foo(int i) { return i; }

 

Somewhere in main function:

 

(_1(1))(foo);

 

Could you give me example of using function call operator in lambda expression?

In advance thank you very much.

 


I don't believe this is possible. The documentation states...

The function call operators have the effect of evaluating the lambda functor. 

from which I infer that the result of application of function-call is no longer a lazy object. You
can write

(_1(foo))(1);

but I guess that's not quite what you had in mind.

HTH

- Rob.