当存在同名宏时如何使用枚举标识符?

Naa*_*Hai 2 c++ macros enums c++11

我正在尝试使用一个枚举,其中枚举值之一被定义为宏。

enum class Method
{
  GET, 
  POST, 
  PUT, 
  HEAD 
  // I want to add DELETE
};
Run Code Online (Sandbox Code Playgroud)

该枚举将在值转换为字符串之前使用。

但是当我添加它时,它说这被定义为我在类中使用的文件DELETE之一中的宏- ..hwinnt.h

在 中winnt.hDELETE定义为:

#define DELETE                           (0x00010000L)
Run Code Online (Sandbox Code Playgroud)

编译器给出一个错误,指出“需要一个标识符”。

我不想更改正在使用枚举并将其转换为字符串的代码。

如何将此DELETE值添加到我的枚举中?

Rem*_*eau 7

DELETE是与各种 Win32 API(例如CreateFile().

使用自己的DELETE价值的唯一选择是:

否则,您将必须将您的enum值重命名为尚未使用的其他名称。