В настоящее время я пытаюсь решить проблему, при которой я хочу предотвратить переопределение переменных. В настоящее время мне удалось избежать переопределения с помощью пасты токена, которая может «вставить» любую заданную вещь в ваше имя переменной. Однако я не хочу, чтобы в одной области было более 1 переменной.
Текущее решение (эти переменные вставляются макросом, я не определяю их сам):
{
mytype mt_2; // 2 is pasted
mytype mt_3; // 3 is pasted
}
Я нашел __if_not_exists
и думаю, что это может быть решением моей проблемы, однако в документах Microsoft указано
Примените оператор __if_not_exists к идентификаторам как внутри, так и вне класса. Не применять оператор __if_not_exists к локальным переменным.
[__ if_not_exists Statement]
Мой вопрос: зачем мне не делать это? Есть ли кто-нибудь, кто использует этот оператор или может сказать мне, как правильно его использовать?
РЕДАКТИРОВАТЬ 1: Чего я действительно пытаюсь достичь sh:
{
Logmacro(); // Logmacro() indents and logs
Logmacro(); // Logmacro() should only log
{
Logmacro(); // Logmacro() indents and logs
}
}