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
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