私のコードでは、このようなものがあります
shrd_ptr_obj st = boost::make_shared<Myobj>();
Myobj tp = boost::make_tuple(0,0,0,0,0 );
st が tp を指すようにするにはどうすればよいですか?
私のコードでは、このようなものがあります
shrd_ptr_obj st = boost::make_shared<Myobj>();
Myobj tp = boost::make_tuple(0,0,0,0,0 );
st が tp を指すようにするにはどうすればよいですか?
自然な方法は、コンストラクターのパラメーターを渡しmake_shared
、同じ行でオブジェクトを作成することです。
shrd_ptr_obj st = boost::make_shared<Myobj>(boost::make_tuple(0,0,0,0,0));
別のステップでオブジェクトを構築したい場合は、スタック上に作成するのではなく、割り当てる必要がありtp
ますnew
。boost::shared_ptr
次に、このnew
ed ポインターからを作成できます。
Myobj *tp = new Myobj(boost::make_tuple(0,0,0,0,0));
shrd_ptr_obj st = boost::shared_ptr<Myobj>(tp);