我已经定义了一个这样的枚举:
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/