¿Cómo obtengo el puntero de función miembro de un destructor?

Asume que tengo

struct X { ~X() {} }; 

¿De qué tipo y cómo obtengo el puntero de función miembro de X::~X() en C ++ 03?

No quiero llamarlo en realidad, solo use en SFINAE para averiguar si existe un destructor para un tipo dado.

No se puede obtener el puntero de función de un destructor ni un constructor. Sin embargo, siempre existe un destructor para un tipo, y no puede detectar si SFINAE considera su privacidad con como especificadores de acceso.

Sobre el tema de invocar lo que sería el destructor de un tipo escalar, la norma dice [class.dtor] / 16 :

[Nota: la notación para la llamada explícita de un destructor se puede utilizar para cualquier nombre de tipo escalar (5.2.4). Permitir esto hace posible escribir código sin tener que saber si existe un destructor para un tipo dado. Por ejemplo,

typedef int I;

I * p;

p-> I :: ~ I ();

“Nota final”