// 基本的すぎてアレですが....
#define DELETE(X) do { delete x; x = 0; } while(0)
#define DELETE_ARRAY(X) do { delete[] x; x = 0; } while(0)
// なぜデフォルトで、こんな風に振舞ってくれないのか、不思議。