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;
}

これじゃダメなん?