【发布时间】:2019-10-07 15:52:09
【问题描述】:
我想将参数传递给一个函数,它是一个枚举。但是我创建了许多不同的枚举,所以我希望该函数对所有枚举都有用。是否可以?我想做的是这样的:
enum Enum a {one, two};
enum Enum b {red, white};
void useEnum (enum anyEnum){
//do something
}
【问题讨论】:
-
一切皆有可能,但一如既往地取决于细节。
//do something是什么? -
做一个泛型函数,这里有什么问题?
-
您听说过我们的领主和技能:模板吗?
-
在您的示例中,
one和red的值可能相同——您的函数应该如何处理? -
... 或者您可以使用
int或任何其他整数类型,它可以保存所有枚举的所有值(最好是std::common_type<std::underlying_type<a>, std::underlying_type<b>>,但int在大多数情况下就足够了例)
标签: c++ enums parameters