Identificación constante de tiempo de compilación

Dado lo siguiente:

template<typename T>
class A
{
public:
    static const unsigned int ID = ?;
};

Quiero que ID genere un ID de tiempo de compilación único para cada T. que he considerado__COUNTER__ y la biblioteca PP de impulso, pero hasta ahora no han tenido éxito. ¿Cómo puedo conseguir esto

Edit: ID debe ser utilizable como el caso en una declaración de cambio

Edit2: todas las respuestas basadas en la dirección de un miembro o método estático son incorrectas. Aunque crean una ID única, no se resuelven en tiempo de compilación y, por lo tanto, no se pueden usar como casos de una declaración de cambio.

Respuestas a la pregunta(16)

Su respuesta a la pregunta