Boost logo

Boost :

From: Sergey Lukin (lukin.s.v_at_[hidden])
Date: 2006-02-09 11:31:59


Peter Dimov replied:

> > t.async_wait(boost::bind(Component::Method1, &y, 10, boost::bind
> > (DPC::Print1, &x, 2), &t));
>
> You need to prevent the inner bind from being treated as a subexpression of
> the outer bind. Either assign it to a function<>:
>
> boost::function<void()> f = boost::bind( DPC::Print1, &x, 2 );
> t.async_wait( boost::bind( Component::Method1, &y, 10, f ) );
> or use boost::protect, as explained at the end of
>
> http://boost.org/libs/bind/bind.html#nested_binds

I tried both suggested solutions but still have the same errors

boost::function<void(int)> f = boost::bind( DPC::Print1, &x, 2 );
t.async_wait( boost::bind( Component::Method1, &y, 10, f, &t ) );
or
t.async_wait( boost::bind( Component::Method1, &y, 10,
boost::protect(f), &t ) );

It seems like boost::protect does not not affect this expression at all.
Maybe I'm doing something wrong.

Thank you in advance,

Sergey


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk