プログラムかいてて、boost::shared_ptrで管理をするようになって、ユーザにはどうしてもnew演算子を使ってポインタを取り出してほしくなくなりました。
で、一番手っ取りはやい方法として、operator newをオーバロードできないかと考えたのですが、さすがにオーバロードした戻り値をvoid*型以外にするのはダメなんですね。
まあ、そんなことしないで、素直にhoge_ptr(new CHoge);とかやれよっていうかも知れませんが、それだとthisの代わりになるshared_ptrをコンストラクタで持つことができないわけで。