Макрос счетчика препроцессора

Есть ли способ создатьCOUNTER() макрос (который следует стандарту C ++ 11/14), который расширяется до числа, которое увеличивается на единицу каждый разCOUNTER() вызывается?

Я думал об этом, но не мог найти способ заставить это работать. Я не нашел способ сохранить "состояние" вCOUNTER() макро.

Пример:

#define COUNTER() <...> // Implementation goes here...
#define UNIQUE_NAME_1() TEST ## COUNTER()
#define UNIQUE_NAME_2() TEST ## COUNTER()

// Note how the COUNTER() macro can be used with other macros
// (it cannot be implemented with C++ code)

int main() {
    std::cout << STRINGIFY(UNIQUE_NAME_1()) << std::endl;
    std::cout << STRINGIFY(UNIQUE_NAME_2()) << std::endl;
}

Ожидаемый результат:

TEST0 
TEST1    

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

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