C++ 枚举类:未命名值错误
我有 这项工作:C++ 枚举类:未命名值错误,c++,visual-studio-2013,C++,Visual Studio 2013,我有 这项工作: enum class ErrorLevel { VERBOSE, DEBUG_, INFORMATION, WARNING, ERROR }; 这并不是: assertDetectionParameters( parameterSet, ErrorLevel::WARNING ); 错误1错误C2589:“常量”:在“::”右侧的非法标记 错误2错误C2059:语法错误:':'
enum class ErrorLevel
{
VERBOSE,
DEBUG_,
INFORMATION,
WARNING,
ERROR
};
这并不是:
assertDetectionParameters( parameterSet, ErrorLevel::WARNING );
错误1错误C2589:“常量”:在“::”右侧的非法标记错误2错误C2059:语法错误:':' 雷斯哈珀说: “ErrorLevel未命名值”
我的枚举中的某些名称出现此错误
ERROR
可能已经是某个预处理器宏了。尝试将其更改为其他内容,例如错误
,以验证此假设。或者,通过预处理器运行代码,查看正在进行哪些替换(gcc-E…
或Visual Studio中的任何等效项)。ERROR
可能已经是某个预处理器宏。尝试将其更改为其他内容,例如错误
,以验证此假设,是的,就是它。请补充一个答案。Thx.一个更好的解决方案是将预处理器宏和其他代码分开,始终对宏使用大写字母名称
,并且只对宏使用。我认为ERROR
是一个完全合法的名称,任何符合标准的编译器都不能定义它。不要使用垃圾编译器。@Walter你认为这是编译器问题的原因吗?我只是在一个普通的vs2013中尝试了相同的代码,错误并不是由编译器或标准头定义的。
assertDetectionParameters( parameterSet, ErrorLevel::ERROR );