現在、次のようなものがあります。
QSharedPointer<t> Qsharedfoo;
これで、 foo への生のポインターとrawfoo
. どうすればfooポイントが生のポインタを所有し、それを指し始めることができますか. boost::make_shared
共有ポインターを使用したブーストで、どのように使用できるか知っていQSharedPointer
ますか?
私はこのようなことをしたい:
Qsharedfoo = rawfoo
現在、次のようなものがあります。
QSharedPointer<t> Qsharedfoo;
これで、 foo への生のポインターとrawfoo
. どうすればfooポイントが生のポインタを所有し、それを指し始めることができますか. boost::make_shared
共有ポインターを使用したブーストで、どのように使用できるか知っていQSharedPointer
ますか?
私はこのようなことをしたい:
Qsharedfoo = rawfoo
どうすればfooポイントが生のポインタを所有し、それを指し始めることができますか. 共有ポインターを使用したブーストでは、boost::make_shared を使用できることを知っています QSharedPointer でどのように行うのですか?
残念ながらできません。
make_shared とは異なり、常にコンストラクターを経由する必要があります。
必ずしも例外に対して安全であるとは限りません。
要約すると、次のようにコンストラクターとoperator=を使用する必要があります。
Qsharedfoo = QSharedPointer<T>(rawfoo); // operator=() overload
または、ポインターへの参照が既にある場合は、次のようにreset() メソッドを使用します。
Qsharedfoo.reset(rawFoo);
しかし、最初に述べたように、これらはあなたが探しているものと同等の操作ではありません。