$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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