Is “eliminar p; p = NULL (nullptr); "un antipatrón?

Buscando algo en SO, me encontré conesta pregunt y uno de los comentarios a la respuesta más votada (el quinto comentario a la respuesta más votada) sugiere quedelete p; p = NULL; es un antipatrón. Debo confesar que lo uso con bastante frecuencia, parándolo algunas veces \ la mayoría de las veces con el checkif (NULL != p). El hombrl propio @ parece sugerirlo (consulte eldestroy() ejemplo de función), así que estoy realmente confundido sobre por qué podría ser algo tan temible ser considerado un antipatrón. Lo uso por las siguientes razones:

cuando estoy lanzando un recurso, también quiero invalidarlo para su uso posterior y NULL es la herramienta adecuada para decir que un puntero no es válido No quiero dejar atrás punteros colgantesQuiero evitar errores dobles \ múltiples libres: eliminar un puntero NULL es como un nop pero eliminar un puntero colgante es como "dispararse en el pie"

Tenga en cuenta que no estoy haciendo la pregunta en el contexto de la"esta" puntero y supongamos que no vivimos en un mundo perfecto de C ++ y que el código heredado existe y debe mantenerse, así que no sugiera ningún tipo de puntero inteligente:).