From: "Dr. Adrian Wrigley" <amtw@linuxchip.demon.co.uk.uk.uk>
Subject: Re: Large arrays (again), problem case for GNAT
Date: Fri, 15 Apr 2005 14:31:30 GMT
Date: 2005-04-15T14:31:30+00:00 [thread overview]
Message-ID: <pan.2005.04.15.14.31.03.201191@linuxchip.demon.co.uk.uk.uk> (raw)
In-Reply-To: bixuxedquttd$.2yk2de9elwh6$.dlg@40tude.net
On Fri, 15 Apr 2005 15:21:32 +0200, Dmitry A. Kazakov wrote:
> On Fri, 15 Apr 2005 11:49:23 GMT, Dr. Adrian Wrigley wrote:
>
...
>> I couldn't understand why there was no decent mechanism for changing
>> the size of an array. The resulting code was much cleaner, faster
>> and more memory efficient than using fancy data structures/container
>> libraries.
>>
>> Why did the language not provide an equivalent of 'realloc' for
>> arrays?
>
> I would propose:
>
> generic
> type Element_Type is limited private;
> type Index_Type is (<>);
> type Array_Type is array (Index_Type) of Element_Type;
> type Access_Type is access Array_Type;
> procedure Ada.Array_Resize (X : in out Access_Type; Elements : Integer);
>
> and
>
> generic
> type Element_Type is private;
> type Index_Type is (<>);
> type Array_Type is array (Index_Type) of Element_Type;
> type Access_Type is access Array_Type;
> procedure Ada.Array_Expand
> ( X : in out Access_Type;
> Elements : Natural;
> Initial : Element_Type
> );
This looks plausible. Could we specify the new 'Last index instead of
the Elements parameter? (what about a new 'First index?) Maybe you'd
have difficulty creating a zero element array though.
It'd be nice if it was less verbose too. 'new' seems so simple
to use - something equally simple would be nice for resizing.
Maybe an extra parameter for new or something(?)
--
Adrian
next prev parent reply other threads:[~2005-04-15 14:31 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-13 12:46 Large arrays (again), problem case for GNAT Dr. Adrian Wrigley
2005-04-13 13:10 ` Larry Kilgallen
2005-04-13 13:24 ` Alex R. Mosteo
2005-04-13 13:31 ` Marc A. Criley
2005-04-13 19:52 ` Jeffrey Carter
2005-04-13 19:54 ` Randy Brukardt
2005-04-13 22:01 ` (see below)
2005-04-14 0:16 ` Robert A Duff
2005-04-14 1:11 ` Alexander E. Kopilovich
2005-04-14 7:29 ` Dmitry A. Kazakov
2005-04-14 7:45 ` Duncan Sands
[not found] ` <1113464720.9829.20.camel@localhost.localdomain>
2005-04-14 13:59 ` Marius Amado Alves
2005-04-14 14:09 ` Dr. Adrian Wrigley
2005-04-14 14:40 ` (see below)
[not found] ` <389d1596e98f95f0fdddc40afc0647b7@netcabo.pt>
2005-04-14 14:14 ` Duncan Sands
2005-04-14 15:18 ` Robert A Duff
2005-04-14 15:24 ` Robert A Duff
2005-04-15 5:21 ` Randy Brukardt
2005-04-15 11:49 ` Dr. Adrian Wrigley
2005-04-15 13:21 ` Dmitry A. Kazakov
2005-04-15 14:31 ` Dr. Adrian Wrigley [this message]
2005-04-15 14:57 ` Dmitry A. Kazakov
2005-04-14 15:39 ` Dr. Adrian Wrigley
2005-04-14 15:48 ` Dmitry A. Kazakov
2005-04-14 21:19 ` Robert A Duff
2005-04-15 8:23 ` Dmitry A. Kazakov
2005-04-15 8:38 ` Duncan Sands
2005-04-15 9:16 ` Dmitry A. Kazakov
2005-04-15 18:30 ` Mark Lorenzen
2005-04-15 19:06 ` Robert A Duff
[not found] ` <iSSDSN2L04G1@VB1162.spb.edu>
2005-04-14 7:34 ` Duncan Sands
2005-04-13 22:35 ` Robert A Duff
2005-04-14 11:40 ` Dr. Adrian Wrigley
2005-04-14 10:44 ` Dr. Adrian Wrigley
2005-04-14 15:03 ` Robert A Duff
2005-04-14 16:46 ` Dmitry A. Kazakov
2005-04-14 18:30 ` Pascal Obry
2005-04-14 19:45 ` Dmitry A. Kazakov
-- strict thread matches above, loose matches on Subject: below --
2005-04-13 13:52 Duncan Sands
2005-04-13 14:20 ` Dr. Adrian Wrigley
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox