基于模板的安全delete
就是经典的SafeDelete问题. 一般好像是用宏写成
//...
#define SafeDelete(P) { delete (p); (p) = 0;}
不知这么写是不是更好:
//...
template< typename T >
void _SafeDelete( T* &p ) { delete p; p = 0; }
而delete 数组这样写:
//...
template< typename T >
void _SafeDeleteArray( T* &p ){ delete [] p; p = 0; }
至少这样写去delete静态分配的数组是无法编过的.但是这样有潜在的问题吗?