ID константы времени компиляции

Учитывая следующее:

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

Я хочу, чтобы ID генерировал уникальный идентификатор времени компиляции для каждого T. Я рассмотрел__COUNTER__ и библиотека повышения PP, но до сих пор не удалось. Как мне этого добиться?

Редактировать: ID должен быть применим, как в случае с оператором switch

Edit2: все ответы, основанные на адресе статического метода или члена, являются неправильными. Несмотря на то, что они создают уникальный идентификатор, они не разрешаются во время компиляции и поэтому не могут использоваться как случаи оператора switch.

Ответы на вопрос(16)

Ваш ответ на вопрос