Вызвать ошибку компиляции при использовании имени переменной - PullRequest
0 голосов
/ 13 июня 2011

Я использую инструмент под названием Rational Rose для C ++. Когда имя переменной, которое включает слово «interface», определено, инструмент перестает работать и выводит пустое сообщение об ошибке.

С проблемой поддержки можно ознакомиться здесь: https://www -304.ibm.com / поддержка / docview.wss? UID = swg21271841 & WV = 1

Я хотел бы добавить директиву препроцессора, чтобы при использовании имени переменной "interface" отображалась ошибка компиляции.

Что-то вроде:

#define interface #error The Keyword interface is not permitted

Ответы [ 2 ]

4 голосов
/ 13 июня 2011

Вы не можете использовать препроцессор для частичного совпадения. Если я напишу IInterface и EInterface и ILikeBigInterfacesAndICannotLie, то вы не сможете использовать препроцессор для сопоставления их всех.

4 голосов
/ 13 июня 2011

Вы не можете использовать операторы препроцессора внутри операторов препроцессора.

Однако вы можете вызвать ошибку компилятора в следующих строках:

#define interface -ERROR_interface_is_a_reserved_symbol

В Windows (компилятор MS) это будет указыватьВы в строке кода с ошибкой:

yourfile.cpp(82): error C2065: 'ERROR_interface_is_a_reserved_symbol' : undeclared identifier

Согласитесь с другими здесь, хотя, кажется, что это неправильное место для решения вашей проблемы.

РЕДАКТИРОВАТЬ: Как отмечает DeadMG, это решение будет работать, только если вы ищете точные имена переменных, а не частичные совпадения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...