c++ - How to overload |= operator on scoped enum? - Stack Overflow
UENUM(BlueprintType)
enum class ECubeBaseDirection : uint8
{
n = 0,
s = 0x01,
w = 0x02,
e = 0x04,
ne = n | e,
ns = n | s,
nw = n | w,
es = e | s,
ew = e | w,
sw = s | w,
nes = n | e | s,
nwe = n | e | w,
nsw = n | s | w,
esw = e | s | w,
nswe = n | s | w | e,
};
inline ECubeBaseDirection operator |(ECubeBaseDirection a, ECubeBaseDirection b)
{
return static_cast<ECubeBaseDirection>(static_cast<int>(a) | static_cast<int>(b));
}
inline ECubeBaseDirection operator &(ECubeBaseDirection a, ECubeBaseDirection b)
{
return static_cast<ECubeBaseDirection>(static_cast<int>(a) & static_cast<int>(b));
}
inline ECubeBaseDirection& operator |=(ECubeBaseDirection& a, ECubeBaseDirection b)
{
return a= a |b;
}
网友评论