|
Boost Users : |
Subject: Re: [Boost-users] Annoying coding
From: Zachary Turner (divisortheory_at_[hidden])
Date: 2009-01-20 10:22:50
On Tue, Jan 20, 2009 at 9:11 AM, Robert Jones <robertgbjones_at_[hidden]>wrote:
> On Tue, Jan 20, 2009 at 2:53 PM, Maxim Koshelev <chuchelo_at_[hidden]>wrote:
>
>> > The Lambda version would be similar, just replacing the outer bind with
>> > infix notation
>> >
>> > #include "boost/lambda/lambda.hpp"
>> > #include "boost/lambda/bind.hpp"
>> >
>> > using namespace boost::lambda;
>> >
>> > std::accumulate( begin, end, _1 + bind(&A::a, _2 ));
>> >
>> > Again untested.
>>
>> this std::accumulate return complicated lambda function, but not int value
>> :-)
>>
>>
> Yeah, sorry, missed the initial value!
>
> std::accumulate( begin, end, 0, _1 + bind(&A::a, _2 ));
>
I still get problems. Mostly ambiguity issues with _1 and _2, so I qualify
them with boost::lambda and then I get
boost::lambda::function_adaptor<Func>::apply none of the 8 overloads could
convert all the argument types
with
[
Func = int Test::*
]
could be ...
and from there it lists every possible overload of RET
boost::lambda::function_adaptor<Func>::apply<RET>(T Test::*, _____)
where ____ is every possible combination of const, volatile, pointer, and
reference, and the type "Object".
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