Newbie boost::mem_fn problem

Hello, My problem I think is very simple, I just can't seem to find the solution I have an STL list of object pointers and I want to call a member function on each of the pointers in the list usigng the STL for_each algorithm. This would seem easy if the list contained the actual objects rather than pointers to them, but because they are pointers I can't find a way of doing this. class Block { public: void update(int x); }; void main() { list<Block*> blocks; for_each(blocks.begin(), blocks.end(), *****); // Call update on each item in list } what should I replace the ***** with? Any help appreciated! Mark.

#include <boost/bind.hpp> ... int updateVal; ... for_each(blocks.begin(), blocks.end(), boost::bind(&Block::update, _1, updateVal)); Jeff -----Original Message----- From: Mark Snelling [mailto:mark@bakedbeans.com] Sent: Wednesday, September 04, 2002 10:17 AM To: Boost-Users@yahoogroups.com Subject: [Boost-Users] Newbie boost::mem_fn problem Hello, My problem I think is very simple, I just can't seem to find the solution I have an STL list of object pointers and I want to call a member function on each of the pointers in the list usigng the STL for_each algorithm. This would seem easy if the list contained the actual objects rather than pointers to them, but because they are pointers I can't find a way of doing this. class Block { public: void update(int x); }; void main() { list<Block*> blocks; for_each(blocks.begin(), blocks.end(), *****); // Call update on each item in list } what should I replace the ***** with? Any help appreciated! Mark. Info: <http://www.boost.org> Wiki: <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl> Unsubscribe: <mailto:boost-users-unsubscribe@yahoogroups.com> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/

Thanks Jeff. I really must spend some time getting to grips with the boost::bind library. Are there any sets of documentation for this? I don't find the Boost set of docs on the topic very enlightening. Mark. ----- Original Message ----- From: "Jeff Faust" <jeff@opticalres.com> To: <Boost-Users@yahoogroups.com> Sent: Wednesday, September 04, 2002 7:22 PM Subject: RE: [Boost-Users] Newbie boost::mem_fn problem
#include <boost/bind.hpp>
...
int updateVal;
...
for_each(blocks.begin(), blocks.end(), boost::bind(&Block::update, _1, updateVal));
Jeff
-----Original Message----- From: Mark Snelling [mailto:mark@bakedbeans.com] Sent: Wednesday, September 04, 2002 10:17 AM To: Boost-Users@yahoogroups.com Subject: [Boost-Users] Newbie boost::mem_fn problem
Hello, My problem I think is very simple, I just can't seem to find the solution I have an STL list of object pointers and I want to call a member function on each of the pointers in the list usigng the STL for_each algorithm. This would seem easy if the list contained the actual objects rather than pointers to them, but because they are pointers I can't find a way of doing this.
class Block { public: void update(int x); };
void main() { list<Block*> blocks; for_each(blocks.begin(), blocks.end(), *****); // Call update on each item in list }
what should I replace the ***** with?
Any help appreciated!
Mark.
Info: <http://www.boost.org> Wiki: <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl> Unsubscribe: <mailto:boost-users-unsubscribe@yahoogroups.com>
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
Info: <http://www.boost.org> Wiki: <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl> Unsubscribe: <mailto:boost-users-unsubscribe@yahoogroups.com>
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/

Those docs are the only I've found. Of course, this forum is a perfect place to present your questions. One thing: bind<> is an improvement over std::bind1st and std::bind2nd. The STL methods will probably have more documentation available. Maybe understanding it from that perspective will help. Jeff -----Original Message----- From: Mark Snelling [mailto:mark@bakedbeans.com] Sent: Thursday, September 05, 2002 1:02 AM To: Boost-Users@yahoogroups.com Subject: Re: [Boost-Users] Newbie boost::mem_fn problem Thanks Jeff. I really must spend some time getting to grips with the boost::bind library. Are there any sets of documentation for this? I don't find the Boost set of docs on the topic very enlightening. Mark. ----- Original Message ----- From: "Jeff Faust" <jeff@opticalres.com> To: <Boost-Users@yahoogroups.com> Sent: Wednesday, September 04, 2002 7:22 PM Subject: RE: [Boost-Users] Newbie boost::mem_fn problem
#include <boost/bind.hpp>
...
int updateVal;
...
for_each(blocks.begin(), blocks.end(), boost::bind(&Block::update, _1, updateVal));
Jeff
-----Original Message----- From: Mark Snelling [mailto:mark@bakedbeans.com] Sent: Wednesday, September 04, 2002 10:17 AM To: Boost-Users@yahoogroups.com Subject: [Boost-Users] Newbie boost::mem_fn problem
Hello, My problem I think is very simple, I just can't seem to find the solution I have an STL list of object pointers and I want to call a member function on each of the pointers in the list usigng the STL for_each algorithm. This would seem easy if the list contained the actual objects rather than pointers to them, but because they are pointers I can't find a way of doing this.
class Block { public: void update(int x); };
void main() { list<Block*> blocks; for_each(blocks.begin(), blocks.end(), *****); // Call update on each item in list }
what should I replace the ***** with?
Any help appreciated!
Mark.
Info: <http://www.boost.org> Wiki: <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl> Unsubscribe: <mailto:boost-users-unsubscribe@yahoogroups.com>
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
Info: <http://www.boost.org> Wiki: <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl> Unsubscribe: <mailto:boost-users-unsubscribe@yahoogroups.com>
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
Info: <http://www.boost.org> Wiki: <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl> Unsubscribe: <mailto:boost-users-unsubscribe@yahoogroups.com> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
participants (2)
-
Jeff Faust
-
Mark Snelling