Thanks Peter, But how exactly do I specify _1? I have the same error if I do not specify any name space (as it is shown in the example) boost::_1 is not defined boost::bind::_1 generates "fatal error C1001: INTERNAL COMPILER ERROR" I do not know which error I like the best :) This is the code: #include <vector> #include <algorithm> #include <boost/bind.hpp> int main(int argc, char **argv) { typedef std::vector<std::vector<bool> > T2Dimensional; T2Dimensional vec; std::for_each(vec.begin(),vec.end() ,boost::bind(&std::vector<bool>::resize,_1,10)); return 0; } Thanks. Peter Dimov wrote:
Alexander Shyrokov wrote:
I want to call a member function with a parameter from within an algorithm.
http://boost.org/libs/bind/bind.html#with_algorithms gives an example:
void animation::advance(int ms); std::vector<animation> anims; std::for_each(anims.begin(), anims.end(), boost::bind(&animation::advance, _1, ms));
I am using boost::lambda:: before _1. I get an error error C2825: 'F::result_type': cannot form a qualified name
I am using MS VC7.1 and boost_1_33_1
Any ideas why this does not work? Thanks.
In 1.33, you can't use boost::bind with Lambda's placeholders. Either use Bind's ::_1 placeholder, or use boost::lambda::bind.
In 1.35, the code will work even with Lambda's placeholder.
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- Regards, Alexander. http://sjcomp.com