From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Ada.Containers.Vectors - querying multiple elements
Date: Mon, 2 May 2005 19:04:32 +0200
Date: 2005-05-02T19:04:22+02:00 [thread overview]
Message-ID: <14ts2mrny7fci.emc3y6pqq7za$.dlg@40tude.net> (raw)
In-Reply-To: 1O2dnYJF_uSxAejfRVn-2Q@megapath.net
On Sun, 1 May 2005 22:21:42 -0500, Randy Brukardt wrote:
> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
> news:txah28f4zlnp$.1pqea609lovyn.dlg@40tude.net...
> ...
>> Now consider the following test:
>>
>> type T is mod 1;
>> type T_Array is array (T range <>);
>> X : T_Array := <somehow-obtained-empty-array>;
>> begin
>> for I in X'Range loop -- This is OK
>> null;
>> end loop;
>> for I in X'First..X'Last loop -- This cannot be OK
>> null;
>> end loop;
>>
>> Which is in a perfect contradiction with 3.6.2(7). It could probably be
>> mended too if we had universal index types. But this is yet another story.
>
> In Ada as currently defined, you would get Constraint_Error from the attempt
> to define the bounds. That happens with string types:
>
> type T is mod 1;
> type T_Array is array (T range <>) of Character;
> X : T_Array := ""; -- Raises Constraint_Error
>
> There is actually an ACATS test to check this. (I remember it because one
> vendor disputed the test; it was upheld.)
So "" is not allowed for any string type which index is not a
subtype/derived type S of some base type T, such that S'First>T'First. With
a nice consequence that:
type T1 is range -2147483647..0;
type T1_Array is array (T range <>) of Character;
type T2 is range -2147483648..0;
type T2_Array is array (T range <>) of Character;
type T3 is range -2147483649..0;
type T3_Array is array (T range <>) of Character;
X : T1_Array := ""; -- Legal
Y : T2_Array := ""; -- Illegal
Z : T3_Array := ""; -- Again legal!!!!!
That's really funny. What is so special in the number -2147483648? Should
it mean that potentially no program that uses negative indices and empty
strings is portable, you never know where *a* built-in integer type may
start?
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2005-05-02 17:04 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-26 11:43 Ada.Containers.Vectors - querying multiple elements Duncan Sands
2005-04-26 14:12 ` Georg Bauhaus
2005-04-26 14:39 ` Duncan Sands
2005-04-26 15:44 ` Matthew Heaney
2005-04-26 16:05 ` Duncan Sands
[not found] ` <1114531544.32583.142.camel@localhost.localdomain>
[not found] ` <426E72C3.9070108@on2.com>
2005-04-26 16:59 ` Duncan Sands
[not found] ` <1114534751.32583.144.camel@localhost.localdomain>
[not found] ` <426E73DE.2070505@on2.com>
2005-04-26 17:08 ` Duncan Sands
2005-04-26 18:17 ` Martin Dowie
2005-04-26 18:48 ` Duncan Sands
2005-04-26 18:59 ` Duncan Sands
2005-04-26 19:05 ` Georg Bauhaus
2005-04-26 20:34 ` Duncan Sands
2005-04-26 21:47 ` Dr. Adrian Wrigley
2005-04-26 23:21 ` Marius Amado Alves
[not found] ` <9decddc0038674b3c85aeceefb4d3b83@netcabo.pt>
2005-04-27 8:15 ` Duncan Sands
[not found] ` <1114589729.10418.13.camel@localhost.localdomain>
2005-04-27 11:49 ` Marius Amado Alves
2005-04-28 0:36 ` Randy Brukardt
2005-04-28 7:09 ` Duncan Sands
2005-04-27 11:10 ` Georg Bauhaus
2005-04-27 11:57 ` Duncan Sands
2005-04-28 14:17 ` Duncan Sands
2005-04-27 4:59 ` Jeffrey Carter
2005-04-27 7:21 ` Duncan Sands
2005-04-28 2:54 ` Jeffrey Carter
2005-04-28 7:15 ` Duncan Sands
2005-04-28 12:27 ` Matthew Heaney
2005-04-28 13:18 ` Matthew Heaney
2005-04-28 13:53 ` Duncan Sands
2005-04-29 2:46 ` Jeffrey Carter
2005-04-29 18:22 ` Robert A Duff
2005-04-28 7:18 ` Duncan Sands
2005-04-28 0:33 ` Randy Brukardt
2005-04-28 3:09 ` Jeffrey Carter
2005-04-28 20:55 ` Randy Brukardt
2005-04-29 2:54 ` Jeffrey Carter
2005-04-29 18:34 ` Robert A Duff
2005-04-29 20:18 ` Randy Brukardt
2005-04-29 20:00 ` Randy Brukardt
2005-04-30 4:06 ` Jeffrey Carter
2005-04-29 7:52 ` Dmitry A. Kazakov
2005-04-29 20:26 ` Randy Brukardt
2005-04-30 9:24 ` Dmitry A. Kazakov
2005-05-02 3:21 ` Randy Brukardt
2005-05-02 17:04 ` Dmitry A. Kazakov [this message]
2005-05-02 18:57 ` Robert A Duff
2005-05-03 8:14 ` Dmitry A. Kazakov
2005-05-03 23:30 ` Robert A Duff
2005-05-05 10:51 ` Dmitry A. Kazakov
2005-05-07 1:20 ` Matthew Heaney
2005-05-07 7:17 ` Dmitry A. Kazakov
[not found] <1114515832.32583.41.camel@localhost.localdomain>
[not found] ` <426E5A0B.3010109@on2.com>
2005-04-26 16:00 ` Duncan Sands
2005-04-28 0:54 ` Randy Brukardt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox