Are there any good reasons (except \"macros are evil\", maybe) NOT to use the following macros ?
#define DELETE( ptr ) \\ i
Use boost::shared_ptr<> instead.
http://www.boost.org/doc/libs/1_39_0/libs/smart_ptr/shared_ptr.htm
The MACRO here provides some of the functionality you are probably looking for.