我想定义自己的Enumerated类型:ExitType。我是这样写的:
enum ExitType{
EXIT_SUCCESS,
EXIT_FAILURE,
EXIT_OTHERTYPE
};
我有一个返回ExitType的函数。在某些情况下,它返回EXIT_SUCCESS。但是我得到的错误信息是你无法从int转换为ExitType。我可以为我的IDE取消定义EXIT_SUCCESS,还是我使用static_cast<int>(EXIT_SUCCESS)
?它似乎引入了他们的EXIT_SUCCESS与我的EXIT_OTHERTYPE等排列的可能性。
我正在使用带有CDT,MinGW32和SDL的Eclipse Helios。所有32位和最新版本。
编辑:尝试使用预处理器取消定义EXIT_SUCCESS。
#undef EXIT_SUCCESS
#undef EXIT_FAILURE
enum ExitType{
EXIT_SUCCESS,
EXIT_FAILURE,
EXIT_OTHERTYPE,
EXIT_NOEXIT
};
结果:
.. \ src \ EventManager.cpp:12:7:错误:无效从'int'转换为'ExitType'
编辑2 :当我在包含&lt; SDL / SDL.h&gt;之后移动了我的undefines时,错误就消失了。但是,SDL代码的GREP不会出现与EXIT_SUCCESS相匹配的任何内容。
答案 0 :(得分:2)
#undef EXIT_SUCCESS
应该取消定义预处理器符号EXIT_SUCCESS
,这是我假设在这里进行的。但只有这样做才能做到这一点,你不会因此而破坏任何东西!