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