boost::shared_ptrやstd::shared_ptrの便利さは、boostやC++11に慣れた方であれば当然ご存知かと思います(もちろん、循環参照の危険性や、それを回避するためのweak_ptrの使い方まで含めて)。 しかし世の中というものはさらに便利にできていて、この便利なshared_ptrをさらに便利に扱うためにmake_sharedという関数が用意されています! make_sharedは何が素晴らしいのか C++に限らず、メモリ確保というのは一般に極めて重い処理になります。よって、newの回数をなるべく少なくするようにプログラムを書くのが高速化のカギになります。 さてそこで、試しに次のようなコードを書いてみましょう。 #include <stdlib.h> #include <memory> #include <iostream> static const char