私が行った研究から、std::make_shared
がstd::shared_ptr
を構成するのに好ましい方法だと思われます。具体的には:std :: make_sharedを使用しない状況はありますか?
- 少なくとも2つを実行する
new
を使用する場合と比較して、1回のメモリ割り当てしか実行しません。 - ctorがmake_sharedに渡すと、新しいものと同じように、リークしません。
私の質問は、私はshared_ptrのを望んでいることを、私はいつも使用make_shared
を、またはnew
が好ましい場合がある必要がありますと仮定すると、ありますか?
'shared_ptr'コンストラクタがスローすると' shared_ptr(new int) 'はメモリをリークしません。あなたの2番目のポイントは私に暗示しているようです。 –
Simple