【发布时间】:2015-06-29 12:45:06
【问题描述】:
我在尝试构建我的应用程序时报告了以下错误:
- 错误 C2143:语法错误:在“常量”之前缺少“}”
- 错误 C2143:语法错误:缺少 ';'在“常数”之前
- 错误 C2059:语法错误:'常量'
对于以下代码:
namespace oP
{
enum adjustment
{
AUTO_OFF,
AUTO_ONCE,
AUTO_CONTINUOUS,
AUTO_SEMI,
ABSOLUTE, // The line that the errors point to.
NUDGE
};
}
小写的“absolute”构建正常,如果我拼错 ABSOLUTE,那么它构建没有错误。
我已经搜索了我的整个代码库,没有其他地方使用“绝对”一词。 我已经调查了没有此更改的构建工件,但在其中找不到任何对 ABSOLUTE 的引用。
有没有人指出问题出在哪里或如何调试?
谢谢
【问题讨论】:
-
你使用的是哪个编译器?
-
您可能在某个包含的文件中的某个位置以该名称定义了一个宏。检查它们;更简单的方法是检查预处理器的输出。如果您使用
g++,请使用-E标志在预处理阶段后停止。 -
我怀疑某些标头(您的或第 3 方的)将
ABSOLUTE定义为::fabs。如果它是 C++ 标准库的一部分,那么这是一个糟糕的实现。 -
中有一个#include -
@James 那么你需要使用
/E或/P。见here。
标签: c++ enums namespaces literals