Codejie's C++ Space

Using C++

求解:如何获得enum类型中枚举值的数量


   enum T { T1 = 0, T2 };

   如上的enum类型,如何知道其有两个枚举值呢?
   对于这个问题,我还真没注意过,想当然的用sizeof(T),结果得到4!面对有些不知所措,因为实在想不出还有什么方法可以取得想要的2了。。。
   我知道有种常用的方法是在enum中的最后再定义一个类型,根据enum的特性其值恰就是数量,但这就要求再增加新的值时,一定要放在其前面。虽然只是一个方法,但总觉得有些怪,没事定义一个这样的值干嘛?
   所以,各位其他方法吗?

posted on 2009-11-11 16:08 codejie 阅读(5105) 评论(16)  编辑 收藏 引用 所属分类: C++随笔而已

评论

# re: 求解:如何获得enum类型中枚举值的数量 2009-11-11 20:43 OwnWaterloo

木有  回复  更多评论   

# re: 求解:如何获得enum类型中枚举值的数量[未登录] 2009-11-12 01:47 Liu

搞不懂你咋有这么变态的需求。

sizeof(T)当然是4,就是一个Integer么

编译过程中,这些应该直接当作了常量处理吧?所以你上哪里知道有多少常量呢  回复  更多评论   

# re: 求解:如何获得enum类型中枚举值的数量 2009-11-12 09:46 codejie

@OwnWaterloo
悲剧~  回复  更多评论   

# re: 求解:如何获得enum类型中枚举值的数量 2009-11-12 09:47 codejie

@Liu
嗯,我需求就是要知道‘有多少常量’,不是很变态吧。。。。

另:
为了C,我又买了三本书:C语言,C专家,C陷阱。你看我够勤奋吧~  回复  更多评论   

# re: 求解:如何获得enum类型中枚举值的数量 2009-11-12 10:09 溪流

enum T
{
T1 = 0,
T2,
// ...
Tn,
T_MAX
};

读 T_MAX 确定个数  回复  更多评论   

# re: 求解:如何获得enum类型中枚举值的数量 2009-11-12 10:28 codejie

@溪流
嗯,我就是不想定义个T_MAX。。。。嘿嘿。。。  回复  更多评论   

# re: 求解:如何获得enum类型中枚举值的数量 2009-11-12 20:11 溪流

@codejie
那,木有了  回复  更多评论   

# re: 求解:如何获得enum类型中枚举值的数量[未登录] 2009-11-12 20:19 codejie

@溪流
杯具啊~  回复  更多评论   

# re: 求解:如何获得enum类型中枚举值的数量[未登录] 2009-11-13 03:34 Liu

@codejie
有时候我觉得,你是不是勤奋的过头了……  回复  更多评论   

# re: 求解:如何获得enum类型中枚举值的数量 2009-11-13 10:05 codejie

@Liu
哎呀,不想平常的你啊。。。我以为你会说我--吃了空。。。  回复  更多评论   

# re: 求解:如何获得enum类型中枚举值的数量 2010-05-22 23:27 Freeway

This works in C#:
enum ae
{
aa,
bb
}

public static void enumTest()
{
var el = Enum.GetNames(typeof(ae)).ToList();
el.ForEach(e => Console.WriteLine(e));
}
Hope this could help in CPP.  回复  更多评论   

# re: 求解:如何获得enum类型中枚举值的数量 2010-05-24 12:33 codejie

@Freeway
CPP这样应该不行,没有对应的函数。。。
(CPPBLOG.COM应该rollback过了,我前面的回复没有了。。。)  回复  更多评论   

# re: 求解:如何获得enum类型中枚举值的数量 2013-02-27 15:33 cnbt

得到一个总数循环判断,,,  回复  更多评论   

# re: 求解:如何获得enum类型中枚举值的数量[未登录] 2013-02-27 20:14 codejie

@cnbt
有了总数,还循环个毛毛啊...  回复  更多评论   

# re: 求解:如何获得enum类型中枚举值的数量 2013-03-01 00:14 溪流

@codejie
哈哈:)  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


公告

Using C++

导航

统计

留言簿(73)

随笔分类(513)

积分与排名

最新评论

阅读排行榜

评论排行榜