
23 Mar
2009
23 Mar
'09
2:41 a.m.
Please help me! I want to call a virtual function of objects in std::list while using std::for_each: struct DiscardableItem { void Discard() { std::cout<<"Discard item!"<<std::endl; } }; std::list<DiscardableItem*> items; items.push_back(new DiscardableItem); items.push_back(new DiscardableItem); std::for_each( items.rbegin(), items.rend(), _1->*&DiscardableItem::Discard ); But DiscardableItem::Discard does not be called. How can I make it work? thanks! I think lambda can solve this problem easily.