如何确定枚举中的成员数
How do I determine the number of the members in an enum?
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
};
相关文章:
- 是否可以根据其数据成员的类型确定类型的大小
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?
- Opencv 时刻没有成员命名 m00,同时试图确定轮廓的中心
- C++ - 使用常量引用来延长临时成员,确定还是 UB?
- 如何确定对象是否已分配成员
- 通过指向班级第一个成员的指针访问成员是不确定的行为吗?
- 不确定如何修复;非静态成员参考必须相对于特定对象
- 确定模板中结构或元组的成员偏移
- 通过全球常数对静态数据成员的初始化会导致不确定的行为
- 为什么我可以在成员函数中使用尚未确定的成员变量
- 指向成员函数的指针与指向数据成员的指针有何不同
- 通过函数参数确定结构体成员
- 如何使用C++模板参数来确定类中的成员类型
- 在初始评估列表中引用类成员是不确定的行为吗?
- 类中成员变量的数量不确定?C++
- TDD:确定地测试成员初始化,给定C++中未定义的行为
- 在其成员函数返回之前,将对象删除是不确定的行为吗?
- 如果没有使用使用代码的链接,则对G 中的静态常规成员的不确定引用
- 在编译时确定结构成员字节偏移量
- 什么是C++中的不确定行为?它与未定义的行为有何不同