Boost logo

Boost Users :

From: Mark Loew (mloew_at_[hidden])
Date: 2003-09-28 19:55:51

Excellent thanks. I see exactly what I was missing. Thanks for the

Mark Loew, MCSD, MCSE
Application Development Consultant
Sagestone Consulting
Grand Rapids, MI
616-954-9556 x149
Microsoft Gold Certified Partner

-----Original Message-----
From: Douglas Gregor [mailto:gregod_at_[hidden]]
Sent: Saturday, September 27, 2003 1:58 PM
To: Boost Users mailing list
Subject: Re: [Boost-users] Base Pointer member functions failure

On Friday 26 September 2003 06:38 pm, Mark Loew wrote:
> 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.

That was Peter :)

> 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

Right, so the function object has two parameters, the first (which
to the implicit 'this' parameter) is of type T* and the second is of
type A.
When using bind, think of member function pointers as having an
like this one, and try to forget the ugly member pointer syntax.

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

With bind(), no parameter is special, including the implicit object
If we have:

  g = boost::bind(f, _1, x)


maps to:

  f(y, x)

in our case, 'f' is an adaptor around a member function pointer, which
ends up



Boost-users mailing list

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