comp.lang.ada
 help / color / mirror / Atom feed
From: Jeffrey Carter <spam@spam.com>
Subject: Re: Accessing the underlying rep for enumerated types?
Date: Wed, 13 Oct 2004 01:26:42 GMT
Date: 2004-10-13T01:26:42+00:00	[thread overview]
Message-ID: <mv%ad.1639$6k2.1151@newsread3.news.pas.earthlink.net> (raw)
In-Reply-To: <MrNoSpam-EC7BEF.08320213102004@news-server.bigpond.net.au>

Dale Stanbrough wrote:

> An enumeration type can have a representation clause applied to it
> allowing you to specify a underlying integer representation for
> each value.
> 
> 'Pos tells you the position within the enumeration, not it's
> underlying value. Is there any way to get access to this value
> other than using Unchecked_Conversion?

Sure:

type Enum is (One, Two, Three);
for Enum use (One => 1, Two => 2, Three => 4);

type Rep_List is array (Enum) of Positive;

Get_Rep : constant Rep_List := (One => 1, Two => 2, Three => 4);

E   : Enum     := Enum'First;
Rep : Positive := Get_Rep (E);

If you mean a way built into the language, that's called 
Unchecked_Conversion.

-- 
Jeff Carter
"My legs are gray, my ears are gnarled, my eyes are old and bent."
Monty Python's Life of Brian
81




  parent reply	other threads:[~2004-10-13  1:26 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-10-12 22:32 Accessing the underlying rep for enumerated types? Dale Stanbrough
2004-10-13  0:20 ` Stephen Leake
     [not found]   ` <MrNoSpam-2408AC.16521913102004@news-server.bigpond.net.au>
2004-10-13  7:23     ` Marius Amado Alves
2004-10-13 12:29     ` Stephen Leake
2004-10-13  1:26 ` Jeffrey Carter [this message]
2004-10-13  6:51   ` Dale Stanbrough
2004-10-13 21:49     ` Nick Roberts
2004-10-14  1:25     ` Jeffrey Carter
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox