
Alright I am now functioning in my code. Now the hard part. Can you explain to me what I am missing. The _1 states to use the first paramter in the first position. Doug mentioned that there is an implicit 'this' argument. So the bind is creating a function object template<class S, class T, class A> With the constructor of somefunc( S (T::*p)(A) ); // declaring the pointer to the function then the operator is operator( T *p, A x ) and calls the func So in the bind I was thinking that Boost::bind( Base::CheckFunc, x ) I wrongly assumed that the T value was the variable passed in by the find_if and the second parameter was the x my second variable on my func. What am I missing. I just don't want my code to work I want to know why. Makes reusing the thing much easier. Mark Loew, MCSD, MCSE Application Development Consultant Sagestone Consulting www.sagestone.com Grand Rapids, MI 616-954-9556 x149 Microsoft Gold Certified Partner mloew@sagestone.com -----Original Message----- From: Peter Dimov [mailto:pdimov@mmltd.net] Sent: Friday, September 26, 2003 6:11 PM To: Boost Users mailing list Subject: Re: [Boost-users] Base Pointer member functions failure Mark Loew wrote:
Okay,
Call me stupid but I can't get this to work
class Base { virtual const bool CheckFunc(const value& val ) const { return true; } }
[...]
std::find_if( vecBase.begin(), vecBase.end(), boost::bind(Base::CheckFunc, aVal ) );
Try boost::bind(&Base::CheckFunc, _1, aVal) instead. Remember that a member function has an implicit 'this' argument. _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users