From: mheaney@ni.net (Matthew Heaney)
Subject: Re: operands of membership tests
Date: 1997/10/26
Date: 1997-10-26T00:00:00+00:00 [thread overview]
Message-ID: <mheaney-ya023680002610972222570001@news.ni.net> (raw)
In-Reply-To: dewar.877921177@merv
In article <dewar.877921177@merv>, dewar@merv.cs.nyu.edu (Robert Dewar) wrote:
><<Let's suppose 33_000.0 isn't even in the base range of Fixed>>
>
>Then this is obviously statically illegal, end of discussion
Perhaps I mistated my question; please forgive me. The code below compiles
cleanly (using GNAT 3.10), and produces the following output:
33_000 > T'Base'Last: TRUE
33_000 in T: FALSE
33_000 in T'Base: FALSE
Since this code is "statically legal," then it begs another question: What
is the definition of "base range"? I assumed that if 33_000 were greater
than T'Base'Last, then that meant it wasn't in the base range. Is this
assumption incorrect?
Sometimes a (static) literal, outside the base range of the type, is
flagged as illegal at compile-time. Yet in this example, we have a literal
outside the base range of the type, that isn't flagged. My question is
this. What are the circumstances under which a static literal expression
is illegal, because it's outside the base range of the type?
-- STX
with Ada.Text_IO; use Ada.Text_IO;
procedure Test_Mem is
type Fixed is delta 1.0 range 0.0 .. 256.0;
for Fixed'Small use 1.0;
begin
Put ("33_000 > T'Base'Last: ");
Put (Boolean'Image (33_000.0 > Fixed'Base'Last));
New_Line;
Put ("33_000 in T: ");
Put (Boolean'Image (33_000.0 in Fixed));
New_Line;
Put ("33_000 in T'Base: ");
Put (Boolean'Image (33_000.0 in Fixed'Base));
New_Line;
end;
-- ETX
--------------------------------------------------------------------
Matthew Heaney
Software Development Consultant
<mailto:matthew_heaney@acm.org>
(818) 985-1271
next prev parent reply other threads:[~1997-10-26 0:00 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
1997-10-26 0:00 operands of membership tests Matthew Heaney
1997-10-26 0:00 ` Robert Dewar
1997-10-26 0:00 ` Matthew Heaney [this message]
1997-10-27 0:00 ` Tucker Taft
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox