我试图编写一个以枚举作为参数的函数,就像函数将采用int或bool等一样。
我正在使用c ++这样的例子 void Func(enum Blah,int blah);
任何想法如何让函数将非特定的枚举作为参数?
我知道我可以将枚举作为整数投射并像这样传递它们
enum foo {BAR};
void Func(int myenum,int blah); Func((int)BAR,0) 但是我不想通过除枚举之外的其他任何东西。
我听说过仿制药,我不确定它们是不是答案,因为我无法找到关于它们的任何确切信息。
因此,非常感谢一些能帮助我的代码或链接。提前谢谢。
答案 0 :(得分:0)
template <typename Enum>
void Func (Enum blah, int fleh)
{
static_assert(std::is_enum<Enum>::value, "Only enums are allowed here");
}