枚举中的Visual Studio编译器错误

时间:2011-11-15 16:32:52

标签: c++ visual-studio visual-c++

我有以下代码在Linux和Mac OS X下编译时没有错误。我现在想用Windows编译代码,但是我在以下代码段中遇到了很多错误:

...
enum Type   
    {
        UPDATE = 0, DELETE = 1
    };
...

错误信息如下:

1>Request.hpp(48) : error C2143: syntax error : missing '}' before '('
1>Request.hpp(48) : error C2059: syntax error : '<L_TYPE_raw>'
1>Request.hpp(49) : error C2143: syntax error : missing ';' before '}'
1>Request.hpp(49) : error C2238: unexpected token(s) preceding ';'

我错了什么,我真的很困惑,因为这在Linux下编译没有错误。 什么可能导致这个错误?

2 个答案:

答案 0 :(得分:5)

解决方案非常简单,但需要知道DELETE是在windows标头中定义的宏。

我现在添加了#undef DELETE,它运行正常。

答案 1 :(得分:0)

Type是现有的课程。您需要更改名称或指定它是文字。

您可以尝试enum @Type指定文字,但您可能需要在其他位置添加@作为前缀。