📄 enuminfo
字号:
From: "Klaus Eichner" <klaus_gb@yahoo.com>Date: Sat, 26 Jul 2003 14:53:23 +0100Newsgroups: comp.lang.c++Subject: Re: enum count"Clive" <clive@clive.clive> wrote in messagenews:3f21e5cc$0$23611$5a62ac22@freenews.iinet.net.au...> If you have an enum, is there any way during execution to find the numberof> values in the enum?> Say I have,>> enum great { five, ten, fifteen };>> How could I get the number 3 from that?You could get the number 3 from 'great' with your own, user-defined'Enum_Info' template:cout << "The number of values in enum great is " << Enum_Info<great>::number_of_elements << endl;The 'Enum_Info' template is defined as follows.Suppose you have the following enums:enum great { five, ten, fifteen };enum greater { none, one, fourtytwo, fourtythree, fourtyfour };enum even_greater { minusone, minustwo, minusthree, minusfour, minusfive,minussix, minusseven };You could build a template class 'Enum_Info' which uses specialisation toregister the number of elements in each enumtemplate <class T> class Enum_Info { };template <> class Enum_Info<great> { static const int number_of_elements =3; };template <> class Enum_Info<greater> { static const int number_of_elements =5; };template <> class Enum_Info<even_greater> { static const intnumber_of_elements = 7; };EnumInfo,v 1.1 2005/05/24 04:33:12 turkaye Exp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -