ID константы времени компиляции
Учитывая следующее:
template<typename T>
class A
{
public:
static const unsigned int ID = ?;
};
Я хочу, чтобы ID генерировал уникальный идентификатор времени компиляции для каждого T. Я рассмотрел__COUNTER__
и библиотека повышения PP, но до сих пор не удалось. Как мне этого добиться?
Редактировать: ID должен быть применим, как в случае с оператором switch
Edit2: все ответы, основанные на адресе статического метода или члена, являются неправильными. Несмотря на то, что они создают уникальный идентификатор, они не разрешаются во время компиляции и поэтому не могут использоваться как случаи оператора switch.