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

Mark Loew, MCSD, MCSE
Application Development Consultant
Sagestone Consulting
www.sagestone.com
Grand Rapids, MI
616-954-9556 x149
Microsoft Gold Certified Partner
mloew_at_[hidden]

-----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
function
>
> then the operator is
> operator( T *p, A x )
> and calls the func

Right, so the function object has two parameters, the first (which
corresponds
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
operator()
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
parameter.
If we have:

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

then
  
  g(y)

maps to:

  f(y, x)

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

  y->*CheckFunc(x)

        Doug

_______________________________________________
Boost-users mailing list
Boost-users_at_[hidden]
http://lists.boost.org/mailman/listinfo.cgi/boost-users


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net