0

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

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 类型的实体。”

有人可以帮忙吗?谢谢你。

4

1 回答 1

4

您正在尝试将 分配intenum,这是不允许的。抛开wstring分心,你所做的相当于

eFeature iThis;
iThis = 42;

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

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

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

于 2013-05-26T15:30:13.063 回答