0

私がやりたいことは --> 新しいスレッドで新しいオブジェクトを作成することです。何かのようなもの:

Class* object = 0;
Arg arg;
boost::thread t( lambda::bind( object = lambda::new_ptr< Class >()( boost::ref( arg ) );

コンパイルされません。正しい方法は何ですか?

4

1 に答える 1

0

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;

引数 arg1;

名前空間 phx = ブースト::フェニックス;

boost::thread t( phx::ref( オブジェクト ) = phx::new_< クラス >( phx::cref( arg0 ), phx::ref( arg1 ) );

于 2013-02-20T00:29:57.477 に答える