Конструкция C ++, которая ведет себя как макрос __COUNTER__ [duplicate]
На этот вопрос уже есть ответ здесь:
Поддерживает ли C ++ счетчики времени компиляции? 7 ответовУ меня есть набор классов C ++, и каждый из них должен объявить уникальный последовательный идентификатор в качестве константы времени компиляции. Для этого я использую__COUNTER__
встроенный макрос, который преобразуется в целое число, которое увеличивается при каждом его появлении. Идентификаторы не должны следовать строгому порядку. Единственное требование - они последовательные и начинаются с 0:
class A {
public:
enum { id = __COUNTER__ };
};
class B {
public:
enum { id = __COUNTER__ };
};
// etcetera ...
Мой вопрос: есть ли способ достичь того же результата с помощью конструкции C ++, такой как шаблоны?