您可以对枚举类使用按位运算符而不进行强制转换吗?

问题描述

我喜欢使用枚举类,但是有时我将它们用作标志,并且如果要使用按位运算符,则必须不断地强制转换为int。有没有一种方法可以不铸造?我认为您不能为它们定义运算符吗?

如果我有采用枚举类的函数,我是否必须这样做?

enum class Flags { FLAG1,FLAG2,FLAG3};

void setFlags(Flags flags){}

int main()
{
      setFlags((Flags)((int)Flags::FLAG1 | (int)Flags::FLAG2 | (int)Flags::FLAG3));
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)