非特定枚举函数参数

时间:2014-10-15 23:27:51

标签: c++ function generics parameters enums

我试图编写一个以枚举作为参数的函数,就像函数将采用int或bool等一样。

我正在使用c ++这样的例子 void Func(enum Blah,int blah);

任何想法如何让函数将非特定的枚举作为参数?

我知道我可以将枚举作为整数投射并像这样传递它们

enum foo {BAR};

void Func(int myenum,int blah); Func((int)BAR,0) 但是我不想通过除枚举之外的其他任何东西。

我听说过仿制药,我不确定它们是不是答案,因为我无法找到关于它们的任何确切信息。

因此,非常感谢一些能帮助我的代码或链接。提前谢谢。

1 个答案:

答案 0 :(得分:0)

template <typename Enum>
void Func (Enum blah, int fleh)
{
  static_assert(std::is_enum<Enum>::value, "Only enums are allowed here");
}