Safetyなdelete

id:uskzさんが
こちらdeleteを使うときのマクロ - ゲームが作れるようになるまでがんばる日記で、
コメントで書かれていたこれは良いアイデア。

template <typename T>
inline void safe_delete(T*& p)
{
    delete p;
    p = 0;
};

template <typename T>
inline void safe_delete_array(T*& p)
{
    delete [] p;
    p = 0;
};


何が良いかって、
deleteにも引数をつけられるところだ。


new (arg) Class();
みたいな書き方はできるのに、
delete (arg) p;
は赦されないので、これをしたいときに使えそう。


ご指摘があったので、この件に関して追記します。