c++ - 如何确定枚举中的成员数?

标签 c++ c++11

<分区>

使用 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 之前添加新的枚举即可。 Example :

#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

关于c++ - 如何确定枚举中的成员数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18863197/

相关文章:

c++ - 使用统一初始化语法的自动类型推导 c++11 与 c++17

c++ - VC++错误 "no operator << matches these operands",但它可以与其他编译器一起使用

c++ - Makefile: `__TMC_END__'的多重定义

c++ - 清空自身的函数指针 vector

c# - 快速修复错误 : System. AccessViolationException

c++ - argv 中的字符串到整数

c++ - 我怎么知道 C++ 编译器是否在编译时计算表达式?

使用字符串文字时的 C++ 内存损坏

c++ - 使用 Windbg 分析转储时,我可以信任局部变量值吗?

c++ - taglib、C++、标签修改