【发布时间】:2019-11-01 06:14:35
【问题描述】:
C++ 中的枚举是否可以有原始值?
Swift 示例:
enum AnOperations: String {
case Addition = "+"
case Subtraction = "-"
case Division = "/"
}
// if or switch
if AnOperations.Addition.rawValue == "+" {
print("true")
}
【问题讨论】:
-
什么是“原始值”?
-
在 C 中,必须将枚举分配给一个 int(我相信)。在 Swift 中,您可以将其分配给字符串、字符或任何整数或浮点类型的值。这对于 C++ 是否可能用于字符串并且可以用于与另一个字符串进行比较(即如果 Addition (an enum) == "+")
-
您的示例使用由单个字符组成的字符串。如果将它们更改为字符(“+”而不是“+”),它将起作用,因为字符是整数。如果您需要字符串,则必须将它们放入字符串函数映射中。
-
您正在寻找的可能是 std::unordered_map
标签: c++