首页 > 解决方案 > 我能数出 enum_class 有多少种吗?

问题描述

enum class COLOR_ : char
{
    RED,
    GREEN,
    BLUE,
    YELLOW
};
int monsternum{ kinds_of_COLOR_*3 };

在这个项目期间,我的枚举类COLOR_可能会发生很大变化。我希望monsternum每种都必须+3COLOR_我怎么知道 enum_class 的种类数?

标签: c++

解决方案


假设您enum的索引是从0最多到n-1n您想要的数字在哪里),我过去看到的习惯用法是将计数作为“额外”枚举值包含在内。

enum class COLOR_ : char
{
    RED,
    GREEN,
    BLUE,
    YELLOW,
    COUNT
};

然后你可以得到它并简单地转换为一个int明确的。

int monsternum{ (int)(COLOR_::COUNT)*3 };

如果您在上面添加任何颜色COUNT,则COUNT其索引将相应更改。


推荐阅读