私がやりたいことは --> 新しいスレッドで新しいオブジェクトを作成することです。何かのようなもの:
Class* object = 0;
Arg arg;
boost::thread t( lambda::bind( object = lambda::new_ptr< Class >()( boost::ref( arg ) );
コンパイルされません。正しい方法は何ですか?
私がやりたいことは --> 新しいスレッドで新しいオブジェクトを作成することです。何かのようなもの:
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;
引数 arg1;
名前空間 phx = ブースト::フェニックス;
boost::thread t( phx::ref( オブジェクト ) = phx::new_< クラス >( phx::cref( arg0 ), phx::ref( arg1 ) );