使用变量名时触发编译错误

Trigger a compile error when a variable name is used

本文关键字:编译 错误 变量名      更新时间:2023-10-16

我正在使用一个名为Rational Rose for C++的工具。当定义了包含单词"interface"的变量名时,该工具将停止工作并打印出一条空白错误消息。

支持问题可以在这里看到:https://www-304.ibm.com/support/docview.wss?uid=swg21271841&wv=1

我想添加一个预处理器指令,这样当使用变量名"interface"时,就会显示编译错误。

大致如下:

#define interface #error The Keyword interface is not permitted

不能在预处理器语句中使用预处理器语句。

但是,您可以强制编译器出现以下错误:

#define interface -ERROR_interface_is_a_reserved_symbol

在windows(MS编译器)上,这会将您指向带有错误的代码行:

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

我同意这里的其他人的看法,尽管这似乎是解决你问题的错误地方。

编辑:正如DeadMG所指出的,只有当您正在寻找精确的变量名,而不是部分匹配时,此解决方案才会起作用。

您不能使用预处理器来获得部分匹配。如果我编写IInterfaceEInterfaceILikeBigInterfacesAndICannotLie,则无法使用预处理器将它们全部匹配。