⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 enuminfo

📁 ACE编程的一本经典BIBLE的源代码,喜欢网络编程的别错过
💻
字号:
From: "Klaus Eichner" <klaus_gb@yahoo.com>
Date: Sat, 26 Jul 2003 14:53:23 +0100
Newsgroups: comp.lang.c++
Subject: Re: enum count

"Clive" <clive@clive.clive> wrote in message
news:3f21e5cc$0$23611$5a62ac22@freenews.iinet.net.au...
> If you have an enum, is there any way during execution to find the number
of
> 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 to
register the number of elements in each enum

template <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 int
number_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 + -