アーカイブ ‘ 2007年 11月8日

SmartPointer::leak()

SmartPointerクラスが、管理下のポインタをdeleteすることなくその管理を終えるときに呼ぶ関数名はなんとしたらよいか。
SmartPointerがpointerを保持している、という実装上の事実からすればrelease()等が妥当だが、pointerそのものと同様に扱えるというのがSmartPointerの本来の設計思想であるので、release()とするとpointer自体を開放してしまいそうで紛らわしい。

などという話をしていたときに当時の同僚だったtxgが提案したのが leak() だった。

素晴らしくね?
とても気に入っていて、今でも愛用している。
流行らないかなあ。SmartPointer自体が時代遅れだからもうダメかな。

return top