Re: [Boost-users] Bind, lambda and how to chain relative function calls
Hi,
My example got a little bit more complicated. The Car::GetRigidBody
function is :
void Car::GetRigidBody(RigidBody & rb)
instead of
RigidBody & Car::GetRigidBody()
So I have to write :
bind (
&Position::GetX,
bind (
&RigidBody::GetPosition,
AdaptToReturningFunction<RigidBody>(bind(&Car::GetRigidBody, &car))
)
)
With a functor named AdaptToReturningFunction that transforms the first
signature to the second :
template<typename T>
class AdaptToReturningFunction
{
public:
ReturnArg(boost::function
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@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (1)
-
Kerner, Jacques