Boost logo

Boost Users :

Subject: Re: [Boost-users] Using function operator in lambda expression
From: Robert Jones (robertgbjones_at_[hidden])
Date: 2011-06-03 04:11:20


On Thu, Jun 2, 2011 at 12:32 PM, Alexander Khomyak <
Alexander.Khomyak_at_[hidden]> wrote:

> Hi.
>
>
>
> According lambda documentation<http://www.boost.org/doc/libs/1_38_0/doc/html/lambda/le_in_details.html#lambda.operator_expressions>there is a possibility to use function call operator in lambda expression.
> But I can’t compile following code using MS Visual Studio 2003.NETcompiler:
>
>
>
> #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.



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