如何找到C++编译器认为定义为常量的东西?

Jam*_*mes 1 c++ enums namespaces literals

尝试构建应用程序时,我报告了以下错误:

  • 错误C2143:语法错误:在'常量'之前缺少'}'
  • 错误C2143:语法错误:缺少';' 在'恒定'之前
  • 错误C2059:语法错误:'常量'

对于以下代码:

namespace oP
{
      enum adjustment
      {
         AUTO_OFF,
         AUTO_ONCE,
         AUTO_CONTINUOUS,
         AUTO_SEMI,
         ABSOLUTE,        // The line that the errors point to.
         NUDGE
      };
}
Run Code Online (Sandbox Code Playgroud)

小写"绝对"构建正常,如果我拼错ABSOLUTE,那么它构建没有错误.

我搜索了整个代码库,其他地方没有使用"ABSOLUTE"这个词.我已经调查了没有这个改变的构建工件,我找不到任何对ABSOLUTE的引用.

有没有人有关于什么是错误或如何调试这个的指针?

谢谢

Bat*_*eba 6

ABSOLUTE#define其中一个Windows API标头中的d(到数字1)<windi.h>.这就是混淆编译器的原因.

你可以#undef,<windows.h>如果你不需要它,删除,或重命名你的枚举.