C++ 无法比较MSVC2008中的两个相同类型枚举

C++ 无法比较MSVC2008中的两个相同类型枚举,c++,enums,visual-studio-2008-sp1,C++,Enums,Visual Studio 2008 Sp1,我想比较两个相同类型的枚举,“我认为它需要一些显式类型。enum enum:size_t{E1,E2,E3}”;@javaLover,因为它不是msvc编译器obviously@Bo佩尔松,请不要再为任何其他人写这样的评论,因为你真的认为现在使用VS2008的人真的很想使用VS2008吗?我必须这样做,因为客户有一个使用VS2008开发的产品,我正在开发一个c将被集成到其中的组件。因此,我不得不处理。@Sugar我不明白你的意思。请你再解释一下,好吗?顺便说一下,它是“LogLevel\u De

我想比较两个相同类型的枚举,“我认为它需要一些显式类型。
enum enum:size_t{E1,E2,E3}”;
@javaLover,因为它不是msvc编译器obviously@Bo佩尔松,请不要再为任何其他人写这样的评论,因为你真的认为现在使用VS2008的人真的很想使用VS2008吗?我必须这样做,因为客户有一个使用VS2008开发的产品,我正在开发一个c将被集成到其中的组件。因此,我不得不处理。@Sugar我不明白你的意思。请你再解释一下,好吗?顺便说一下,它是“LogLevel\u Debug”,因为曾经是“enum LogLevel”“在Logger类之外但在Logger.h中定义。然后,我将其移动到Logger类,因此我将在解决此问题后立即重命名它。@Bo Persson好的,我很高兴您对第一句中我的问题感兴趣,但第二句中的注释应该避免。对于VS2008问题,我总是收到这样的评论。我知道2008年是旧版,MSVC的新版本是免费的。我知道。好啊
// Logger.h
namespace MT
{
class Logger
{
public:
  enum LogLevel
  {
    LogLevel_None = 0,
    LogLevel_Error = 1,
    LogLevel_Warning = 2,
    LogLevel_Info = 3,
    LogLevel_Debug = 4
  };

void log(LogLevel targetLevel,std::string time = "",std::string className = "", std::string functionName = "", std::string message = "");

private:
  LogLevel level;
};
}

// Logger.cpp
void MT::Logger::log(LogLevel targetLevel,std::string time, std::string className, std::string functionName, std::string message)
{
     .
     .
     .
     if(targetLevel <= level)   // THIS LINE GIVES ERROR
     .
     .
     .    
}
error C2676: binary '<=' : 'MT::Logger::LogLevel' does not define this operator or a conversion to a type acceptable to the predefined operator