Boost logo

Boost Users :

From: Kerner, Jacques (jkerner_at_[hidden])
Date: 2005-11-24 12:35:46


Thank you. I did not realize that it could work that way too. That's
really great!!!

Jacques.

-----Original Message-----
From: boost-users-bounces_at_[hidden]
[mailto:boost-users-bounces_at_[hidden]] On Behalf Of Peter Dimov
Sent: Thursday, November 24, 2005 3:41 AM
To: boost-users_at_[hidden]
Subject: Re: [Boost-users] Bind,lambda and how to chain relative
function calls

Kerner, Jacques wrote:
> Hi,
>
> I would like to create a functor for calling functions in a chain like

> this :
>
> car.GetRigidBody().GetPosition().GetX()
>
> What is the best way to do that using bind (and lambda ?)
>
> The car.GetRigidBody() is easy : bind(&Car::GetRigidBody, &car) , but
> then I am a bit stuck. Note that I don't want to store the result of
> car.GetRigidBody(). I want the final functor to call all the functions

> everytime its operator() is called. So
>
>
> bind (
> &Position::GetX,
> &bind (
> &RigidBody::GetPosition,
> &bind (
>
> &Car::GetRigidBody,
> &car
> )()
> )()
> )
>
> would not be acceptable...

Just drop the invocations:

bind (
    &Position::GetX,
    bind (
        &RigidBody::GetPosition,
        bind( &Car::GetRigidBody, &car)
    )
)

_______________________________________________
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