【发布时间】:2013-09-18 03:04:43
【问题描述】:
使用 C++11;明文; Ubuntu 12.04 LTS:
给定:
enum TMyEnum
{
Enum_1, Enum_3, Enum_3
};
什么函数会告诉我 TMyEnum 中有多少成员,在本例中为 3?
【问题讨论】:
-
你的最终目标是什么?并注意你没有使用 c++11 枚举:cprogramming.com/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
【讨论】:
如果你打算使用默认值,你可以像下面这样:
enum TMyEnum
{
Enum_1, Enum_3, Enum_3, No_of_Enums
//^^=3
};
【讨论】: