Enum Parse C ++或Analog

时间:2015-06-20 10:19:32

标签: c# c++ enums

在C#中使用代码:

enum COMPUTER_NAME_FORMAT
{
        ComputerNameNetBIOS,
        ComputerNameDnsHostname,
        ComputerNameDnsDomain,
        ComputerNameDnsFullyQualified,
        ComputerNamePhysicalNetBIOS,
        ComputerNamePhysicalDnsHostname,
        ComputerNamePhysicalDnsDomain,
        ComputerNamePhysicalDnsFullyQualified
}

string format = "ComputerNameDnsFullyQualified";
(COMPUTER_NAME_FORMAT)Enum.Parse(typeof(COMPUTER_NAME_FORMAT), format)

如何在C ++中使用它?

1 个答案:

答案 0 :(得分:1)

C或C ++中没有这样的功能。但你可以制作std::map<std::string, COMPUTER_NAME_FORMAT> m来做到这一点。

通过执行m["ComputerNameNetBIOS"] = ComputerNameNetBIOS;等填写地图。 然后使用auto f = m.find(format); if (f != m.end()) { ... value is in f.second ... }