C++ wstring 枚举

标签 c++ enums type-conversion

我定义了这样一个枚举:

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++ wstring 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16760702/

相关文章:

java - 现有学校作业的替换项目

c++ - C++ std::set 线程安全吗?

c++ - 按值或引用传递枚举?

java - 如何在多个枚举名称中重用代码?

java - 将字符串转换为浮点型 ->Processing.org

java - 自动为枚举添加类似 Java 枚举的功能

c++ - 返回指向本地 char 变量的字符串对象是否安全

java - JDBC 是否支持枚举?

在 J 中列出数字的数字

c# - 将日期和时间字符串序列化为 DateTime 对象