c – 枚举类:没有命名值错误

我有

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中的等效项).

点赞