美文网首页
2022-06-25【c++】enum class bitmas

2022-06-25【c++】enum class bitmas

作者: 持刀的要迟到了 | 来源:发表于2022-06-25 20:07 被阅读0次

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;
}

相关文章

网友评论

      本文标题:2022-06-25【c++】enum class bitmas

      本文链接:https://www.haomeiwen.com/subject/vmzivrtx.html