C++のstd::shared_ptrを使うと、operartor newが2回呼ばれるけど、std::make_sharedを使うと1回で済むらしい!

こんにちは。ヤマヤタケシです。ちょっとしたコードを書いて達成感を味わいたい今日このごろなので、書きましょう。

今日はたまたまスゴイ情報を手に入れました。


C++プログラマーよ!std::make_sharedを安易に使うべからず!
で検証されていますが、後追いで実験してみましょう。

確かに、make_shared版の方がnewとdeleteの回数が減ってます!なんてこった!shared_ptrを使わない理由がまた1つ減りましたね。C++の進化は止まりませんね。

ちなみに、Factory Method で生成するときに Constructor が Private だった場合にmake_sharedが使えない!という問題は、std::make_shared から private コンストラクタを呼び出すとすればいいようです。

C++は奥深すぎてヤバイですね。

そんじゃまた。

コメントを残す

メールアドレスが公開されることはありません。