From: Jeffrey Carter <jrcarter@acm.org>
Subject: Re: CONSTRAINT_ERROR - why?
Date: Sun, 15 Dec 2002 02:18:53 GMT
Date: 2002-12-15T02:18:53+00:00 [thread overview]
Message-ID: <3DFBD8E8.1020604@acm.org> (raw)
In-Reply-To: 3DFBB00B.230289A2@t-online.de
Alfred Hilscher wrote:
>
> Jeffrey Carter schrieb:
>>
>>declare
>> Value : constant := X'Size / 8;
>>begin
>> Y := Value;
>>end;
>
> Is there no way to avoid this extra assignment? I expected something
> like function "/" (Left, Right : universal_integer) return Byte;
There is no "extra assignment". This is a static universal expression
and is evaluated by the compiler. Value becomes a name for the resulting
value (a "named number"). The block statement above is another way to write
Y := 33;
except that changes to X are handled automatically.
This is, however, a gotcha in Ada. The context of the expression helps
determine the selection ("overload resolution") of the operator. Lots of
people, including experienced people, expect the universal operation to
be selected for an assignment to a variable or the initialization of an
object, but that's not what the language rules say.
--
Jeff Carter
"C++ is like giving an AK-47 to a monk, shooting him
full of crack and letting him loose in a mall and
expecting him to balance your checking account
'when he has the time.'"
Drew Olbrich
next prev parent reply other threads:[~2002-12-15 2:18 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-12-14 18:28 CONSTRAINT_ERROR - why? Alfred Hilscher
2002-12-14 18:45 ` James S. Rogers
2002-12-14 19:15 ` Robert A Duff
2002-12-14 19:20 ` James S. Rogers
2002-12-14 19:42 ` Alfred Hilscher
2002-12-16 2:39 ` AG
2002-12-14 19:20 ` Alfred Hilscher
2002-12-14 20:58 ` Dennis Lee Bieber
2002-12-15 13:45 ` Alfred Hilscher
2002-12-15 19:04 ` Robert A Duff
2002-12-16 1:12 ` Dennis Lee Bieber
2002-12-16 2:20 ` Jeffrey Carter
2002-12-16 18:48 ` Alfred Hilscher
2002-12-16 19:53 ` James S. Rogers
2002-12-17 18:20 ` Alfred Hilscher
2002-12-17 19:29 ` Robert A Duff
2002-12-17 21:05 ` Dennis Lee Bieber
2002-12-18 18:36 ` Alfred Hilscher
2002-12-18 18:51 ` Robert A Duff
2002-12-18 21:45 ` Randy Brukardt
2002-12-19 16:49 ` Robert Spooner
2002-12-19 20:57 ` Randy Brukardt
2002-12-14 20:19 ` Jeffrey Carter
2002-12-14 22:26 ` Alfred Hilscher
2002-12-15 0:49 ` Dennis Lee Bieber
2002-12-15 2:18 ` Jeffrey Carter [this message]
2002-12-15 18:23 ` Jeffrey Carter
2002-12-15 14:01 ` Alfred Hilscher
2002-12-15 18:20 ` Jeffrey Carter
2002-12-15 19:00 ` Alfred Hilscher
2002-12-16 1:16 ` Dennis Lee Bieber
2002-12-16 18:50 ` Alfred Hilscher
2002-12-17 2:17 ` Dennis Lee Bieber
2002-12-17 18:21 ` Alfred Hilscher
[not found] ` <26tuvu4ekeigls0bnd2okavrdhfu0tir4a@4ax.com>
2002-12-18 18:47 ` Alfred Hilscher
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox