Boost logo

Boost Users :

From: Mark Loew (mloew_at_[hidden])
Date: 2003-09-26 17:38:00

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

        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

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
Grand Rapids, MI
616-954-9556 x149
Microsoft Gold Certified Partner

-----Original Message-----
From: Peter Dimov [mailto:pdimov_at_[hidden]]
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 ) );


    boost::bind(&Base::CheckFunc, _1, aVal)

instead. Remember that a member function has an implicit 'this'
argument. _______________________________________________
Boost-users mailing list

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at