boost::scoped_ptr は std::auto_ptr のより安全な代替として便利に使えるクラスですが、 release 出来ない 削除関数を指定できない 関数の戻り値として使えない 配列の時は scoped_array を使わなければならない 等、いくつか不満点があります。 幸いなことに、 C++0x には これらの不満点が全て解決された std::unique_ptr がある訳ですが、 C++0x なんか待ってられない、便利なスマートポインタは今すぐ使いたいんだ、って人も多いはず。 実際、趣味で C++ をやってる僕のような人とは違い、仕事で C++ を使っている場合、 C++0x の規格が固まって、コンパイラも対応を進めて、 C++0x を使ったコーディングがメジャーになる、 それまでには、あと何年もかかるのは必至です。 というわけで、上記の不満点を解決した scoped