我已经定义了一个这样的枚举:

enum eFeature
{
    eF_NONE=0,
    eF_PORT_A=1,
    eF_PORT_B=2,
    eF_PORT_C=3,
};


我现在想将wstring(“ 0”,“ 1”,“ 2”或“ 3”)转换为eFeature。

我试过了

eFeature iThis;
iThis = _wtoi(mystring.c_str());


但是编译器告诉我“不能将类型为'int'的值分配给类型为eFeature的实体。”

有人可以帮忙吗?
谢谢。

最佳答案

您试图将int分配给enum,这是不允许的。撇开wstring的注意力,您正在做的事情等同于

eFeature iThis;
iThis = 42;


您首先需要将int强制转换为enum类型:

eFeature iThis;
iThis = static_cast<eFeature>(42);


显然,您首先需要执行某种范围检查。

关于c++ - 用C++ wstring枚举,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16760702/

10-10 21:23