Что я хочу сделать, это -> создать новый объект в новом потоке.
Что-то вроде:
Class* object = 0;
Arg arg;
boost::thread t( lambda::bind( object = lambda::new_ptr< Class >()( boost::ref( arg ) );
это не компилируется, что правильно?
Благодаря ildjarn, я попытался с boost :: phoenix и получил его работать, код:
Class* object = 0;
CArg arg0;
Arg arg1;
boost::thread t( boost::phoenix::val( boost::ref( object ) ) = boost::phoenix::new_< Class >( boost::cref( arg0 ), boost::ref( arg1 ) );
Опять же, из ildjarn лучший код:
Класс * объект = 0;
CArg arg0;
Arg arg1;
пространство имен phx = boost :: phoenix;
boost :: thread t (phx :: ref (object) = phx :: new_< Class> (phx :: cref (arg0), phx :: ref (arg1));
Других решений пока нет …