I think it is better to pass the value as const reference to Save instead
copying it.
On 9/13/07, David Klein
Hughes, James wrote:
I have a question for boost:binders out there... In the following scenario..(pseudocode)
Class Fred { typedef std::map
MyMap; MyMap Bert;
Save(MyMap::iterator pos) { ... }
SaveAll() { for_each(Bert.begin(), Bert.end(), bind(&Fred::Save, this, _1); }
};
The code wants to save all the data in the map. The bind, I was hoping, would simply call Save for all items in the map, passing in the iterator as the parameter, but I get a template compile fault on the bind. I've tried all sorts of combinations, checked boost docs, read the chapter in Beyond the C++ standard library, Googled etc, but just cannot figure out what I need to do here.
Any help gratefully received.
James
Hi James,
Class Fred { ...
void // void was missing Save(MyMap::value_type pos) // changed iterator to value_type { ... }
void // void was missing SaveAll() { for_each(Bert.begin(), Bert.end(), bind(&Fred::Save, this, _1); }
};
-- HTH, dave
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users