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.h,DELETE定义为:
#define DELETE (0x00010000L)
Run Code Online (Sandbox Code Playgroud)
编译器给出一个错误,指出“需要一个标识符”。
我不想更改正在使用枚举并将其转换为字符串的代码。
如何将此DELETE值添加到我的枚举中?
DELETE是与各种 Win32 API(例如CreateFile().
使用自己的DELETE价值的唯一选择是:
不要与winnt.h您的enum.
#undefDELETE在声明您的enum. 请参阅我可以重新定义 C++ 宏然后重新定义它吗?以及其他类似的问题如何保留旧的宏值,以便您可以在以后恢复它(注意:并非所有编译器都支持这样做)。
否则,您将必须将您的enum值重命名为尚未使用的其他名称。
| 归档时间: |
|
| 查看次数: |
245 次 |
| 最近记录: |