|
Boost Users : |
Subject: Re: [Boost-users] [lambda]How can I call function of objects in std::list while using std::for_each?
From: Ç®ÏþÃ÷ (kyleqian_at_[hidden])
Date: 2009-03-22 23:52:31
I am sorry that I did not figure out the whole intention. Beside calling
member function, I hope to delete the object immediately.
I wrote the code at first time:
std::for_each( items.rbegin(), items.rend(),
(_1->*&DiscardableItem::Discard, bind(delete_ptr(), _1)) );
after for_each, objects deleted, but Discard function did not been called.
If using Bind can do the same thing, please tell me. thanks!
2009/3/23 Alex MDC <alex.mdc_at_[hidden]>
> But DiscardableItem::Discard does not be called. How can I make it work?
>> thanks! I think lambda can solve this problem easily.
>>
>
> You don't need boost::lambda here, you can easily solve this with
> boost::bind
>
> std::for_each( items.rbegin(), items.rend(),
> boost::bind(&DiscardableItem::Discard, _1) );
>
> If you *want* to use boost::lambda I'm sure someone else will help :)
>
> Regards,
> Alex
>
>
> _______________________________________________
> 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