Множественное определение значения # препроцессораC++

Программы на C++. Форум разработчиков
Гость
Множественное определение значения # препроцессора

Сообщение Гость »


я создаю проект, в котором пытаюсь создать новый язык, создающий макросы.

Дело в том, что макрос с именем X используется для двух разных целей:
[*]
чтобы закрыть вызов функции скобками, например );, где ; завершает строку кода, а закрывает строку кода. блок кода,
[*]
а иногда мне хочется просто ;.

В заключение, мне нужно сделать хитрый трюк: иногда препроцессор, строка за строкой, понимает X, и это должно быть либо );, либо ;.

Могу ли я как-то сделать это с помощью оператора if else или как-то удалить его, если необходимо?

Я попробовал некоторую реализацию условного значения, где , (codition ? state1 : state2), но это было преобразовано как строка из препроцессора.

Кроме того, я пробовал использовать другие макросы каждый раз, когда они вызывали #undef X, и переопределял их в соответствии с тем, что делать в моей строке, и т. д.

Вернуться в «C++»