enuminfo

来自「ACE自适配通信环境(ADAPTIVE Communication Enviro」· 代码 · 共 46 行

TXT
46
字号
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 + =
减小字号Ctrl + -
显示快捷键?