From: "Vladimir Olensky" <vladimir_olensky@yahoo.com>
Subject: Re: Unchecked_Conversion on different sized types -- problem?
Date: 2000/01/14
Date: 2000-01-14T00:00:00+00:00 [thread overview]
Message-ID: <s7skdcr1oj823@corp.supernews.com> (raw)
In-Reply-To: qXpf4.429$dw3.15200@news.wenet.net
Unchecked_Conversion gives you a different (type) view of the same object.
So both source and target should be of the same size.
In you case you should have
type T is ( BLACK, WHITE );
for T'Size use 32; -- that was missing in
your code
for T use ( BLACK => 30, WHITE => 37 );
In this case size of T will be equal the size if Integer and your
unchecked coversion will be OK.
Regards,
Vladimir Olensky
Mike Silva wrote in message ...
>To do some prototyping I'm extending Michael Feldman's ANSI screen package
a
>bit, to allow colors, etc, and I ran into a question. I've enumerated
>various attributes and set the enumerations to the corresponding ANSI
codes,
>and I'm using UC to convert the enumerated types to an Integer, to send via
>Text_IO.Put(). I get a warning (GNAT 3.12p) that the types for the UC have
>different sizes (not surprising), and I'm wondering if UC always does the
>"right" thing here, i.e. zero-extending the smaller enum type when
>converting to an Integer.
>
>Here are some (reduced) relevant code bits:
>
>type T is ( BLACK, WHITE );
>
>for T use ( BLACK => 30, WHITE => 37 );
>
>function T_to_int is new Unchecked_Conversion( T, Integer );
>
>T_val : T := BLACK;
>
>Text_IO.Put( Item => T_to_int( T_val )...
>
>So, is T_to_int going to give me 30, as opposed to, say, all 32 bits
>starting at the address of T_val? Can somebody tell me where in the LRM it
>talks about this?
>
>(It works "as expected" in this case, but I'm wondering what the rules are)
>
>Also, there's not a simpler way to do this that I'm overlooking, is there?
>
>Mike
>
>
>
next prev parent reply other threads:[~2000-01-14 0:00 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-01-13 0:00 Unchecked_Conversion on different sized types -- problem? Mike Silva
2000-01-13 0:00 ` reason67
2000-01-13 0:00 ` Bryce Bardin
2000-01-13 0:00 ` Mike Silva
2000-01-13 0:00 ` Mike Silva
2000-01-14 0:00 ` Bryce Bardin
2000-01-14 0:00 ` Mike Silva
2000-01-14 0:00 ` Matthew Heaney
2000-01-13 0:00 ` Jim Rogers
2000-01-13 0:00 ` Mike Silva
2000-01-13 0:00 ` James S. Rogers
2000-01-14 0:00 ` Vladimir Olensky [this message]
2000-01-14 0:00 ` Werner Pachler
2000-01-14 0:00 ` reason67
2000-01-14 0:00 ` Bryce Bardin
2000-01-14 0:00 ` Wrap-Up (was Re: Unchecked_Conversion on different sized types -- problem?) Mike Silva
2000-01-15 0:00 ` Matthew Heaney
2000-01-15 0:00 ` Robert A Duff
2000-01-14 0:00 ` Unchecked_Conversion on different sized types -- problem? Keith Thompson
2000-01-16 0:00 ` David A. Cobb
2000-01-14 0:00 ` Jeff 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