SAFE_DELETE って安全でも何でもないよね。
誰が一番最初に作って広めたのかわからないんだけど、
#define SAFE_DELETE( p ) if(p) { delete (p); (p) = NULL; }
っていうマクロ。
そもそも NULL を delete してもなんの問題もないし、このマクロを通したからといって何が安全になるわけでもない。
全ての delete をこれを通してやるべし、って言うなら、素で delete を書くよりは多少は安全になるかもしれないけど、これって安全 delete って言うようなものなの?
template<class T> void deleteAndNullify( T*& p ){ delete p; p = 0; }
これじゃダメなん?