Using C++
enum T { T1 = 0, T2 }; 如上的enum类型,如何知道其有两个枚举值呢? 对于这个问题,我还真没注意过,想当然的用sizeof(T),结果得到4!面对有些不知所措,因为实在想不出还有什么方法可以取得想要的2了。。。 我知道有种常用的方法是在enum中的最后再定义一个类型,根据enum的特性其值恰就是数量,但这就要求再增加新的值时,一定要放在其前面。虽然只是一个方法,但总觉得有些怪,没事定义一个这样的值干嘛? 所以,各位其他方法吗?
posted on 2009-11-11 16:08 codejie 阅读(5282) 评论(16) 编辑 收藏 引用 所属分类: C++ 、随笔而已
木有 回复 更多评论
搞不懂你咋有这么变态的需求。sizeof(T)当然是4,就是一个Integer么编译过程中,这些应该直接当作了常量处理吧?所以你上哪里知道有多少常量呢 回复 更多评论
@OwnWaterloo悲剧~ 回复 更多评论
@Liu嗯,我需求就是要知道‘有多少常量’,不是很变态吧。。。。另:为了C,我又买了三本书:C语言,C专家,C陷阱。你看我够勤奋吧~ 回复 更多评论
enum T { T1 = 0, T2, // ... Tn, T_MAX }; 读 T_MAX 确定个数 回复 更多评论
@溪流嗯,我就是不想定义个T_MAX。。。。嘿嘿。。。 回复 更多评论
@codejie 那,木有了 回复 更多评论
@溪流杯具啊~ 回复 更多评论
@codejie有时候我觉得,你是不是勤奋的过头了…… 回复 更多评论
@Liu哎呀,不想平常的你啊。。。我以为你会说我--吃了空。。。 回复 更多评论
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. 回复 更多评论
@FreewayCPP这样应该不行,没有对应的函数。。。(CPPBLOG.COM应该rollback过了,我前面的回复没有了。。。) 回复 更多评论
得到一个总数循环判断,,, 回复 更多评论
@cnbt有了总数,还循环个毛毛啊... 回复 更多评论
@codejie 哈哈:) 回复 更多评论