comp.lang.ada
 help / color / mirror / Atom feed
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




  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