>>404 void foo()
{
auto_ptr<int> p1(new int);
auto_ptr<int> p2(new int);
// do something
}
こうすれば例外が出てもリークしません。
p2の確保に失敗したときですら、p1だけがうまくデストラクトされます。
auto_ptrを使え、ということではなく、自動変数(スコープ)をうまく使えということです。
vectorやlistを使ってもいいし、何かのクラスのメンバになっていてもいい。
要はdeleteが無ければいい。deleteをまき散らしているやつはまだ厨房。