如何确定枚举中的成员数

How do I determine the number of the members in an enum?

本文关键字:成员 何确定 枚举      更新时间:2023-10-16

Using C++11;明文;Ubuntu 12.04 LTS:

鉴于:

    enum TMyEnum
    {
        Enum_1, Enum_3, Enum_3
    };

什么函数会告诉我 TMyEnum 中有多少成员,在本例中为 3?

一个技巧是在末尾提供一个计数项,例如:

enum TMyEnum
{
    Enum_1, Enum_2, Enum_3, 
    Enum_4, Another_Enum, 
    Enum_count
};

然后TMyEnum::Enum_count应提供枚举集的基数。只需确保在Enum_count之前添加新枚举即可。例:

#include <iostream>
enum TMyEnum
{
    Enum_1, Enum_2, Enum_3, 
    Enum_4, Another_Enum, 
    Enum_count
};
int main() {
    std::cout << TMyEnum::Enum_count << std::endl;   
}

输出

5

如果要将其与默认值一起使用,则可以执行以下操作:

enum TMyEnum
    {
        Enum_1, Enum_3, Enum_3, No_of_Enums
                                //^^=3
    };