Boost logo

Boost Users :

Subject: Re: [Boost-users] Boost lambda bind and boost smart_ptr issue
From: Brian Martin (brian.tensor_at_[hidden])
Date: 2010-06-09 03:31:30


Thanx for the reply.
If by dereferencing the pointer you mean
for_each(shapes.begin(), shapes.end(), bind(&shape::draw, *_1, 2));

then I get another error - cannot instantiate abstract class.
Plus I would expect the dereferencing to slice off the derived bits of
circle and rectangle.

Regards
Brian Martin

On Wed, Jun 9, 2010 at 2:42 AM, Steven Watanabe <watanabesj_at_[hidden]>wrote:

> AMDG
>
> Brian Martin wrote:
>
>> class shape
>> {
>> public:
>> virtual void draw(const int)=0;
>> };
>>
>> <snip>
>>
>>
>> vector< shared_ptr<shape> > shapes;
>>
>> // assume I stick stuff into shapes...
>>
>> for_each(shapes.begin(), shapes.end(), bind(&shape::draw, _1, 2));
>>
>> The last statement fails under VC++ 2008 with
>> error C2665: 'boost::lambda::function_adaptor<Func>::apply' : none of the
>> 2
>> overloads could convert all the argument types
>>
>>
>
> Dereferencing the pointer should work with the current trunk.
>
> In Christ,
> Steven Watanabe
>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>



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