Razón por la que no tener una macro DELETE para C ++

Hayalguna buena razón (excepto "las macros son malas", tal vez)¿NO utilizar las siguientes macros?

#define DELETE( ptr ) \
if (ptr != NULL)      \
{                     \
    delete ptr;       \
    ptr = NULL;       \
}

#define DELETE_TABLE( ptr ) \
if (ptr != NULL)            \
{                           \
    delete[] ptr;           \
    ptr = NULL;             \
}

Respuestas a la pregunta(12)

Su respuesta a la pregunta