我有
enum class ErrorLevel
{
VERBOSE,
DEBUG_,
INFORMATION,
WARNING,
ERROR
};
这有效:
assertDetectionParameters( parameterSet, ErrorLevel::WARNING );
这不是:
assertDetectionParameters( parameterSet, ErrorLevel::ERROR );
Error 1 error C2589: ‘constant’ : illegal token on right side of ‘::’
Error 2 error C2059: syntax error : ‘::’
Resharper说:
“ErrorLevel does not name a value”
我的枚举中的某些名称出现此错误.
最佳答案 ERROR可能已经是某个预处理器宏了.尝试将其更改为其他内容,例如ERROR_,以测试这个假设.或者通过预处理器运行代码以查看正在进行的替换(gcc -E …或Visual Studio中的等效项).