comp.lang.ada
 help / color / mirror / Atom feed
From: "David C. Hoos, Sr." <david.c.hoos.sr@ada95.com>
To: <comp.lang.ada@ada.eu.org>
Subject: Re: Anonymous array clarification.
Date: Mon, 20 Aug 2001 03:29:35 -0500
Date: 2001-08-20T03:29:35-05:00	[thread overview]
Message-ID: <mailman.998298269.12283.comp.lang.ada@ada.eu.org> (raw)
In-Reply-To: tY1g7.45466$K6.17744072@news2

----- Original Message ----- 
From: "McDoobie" <chris@dont.spam.me>
Newsgroups: comp.lang.ada
To: <comp.lang.ada@ada.eu.org>
Sent: August 20, 2001 1:18 AM
Subject: Anonymous array clarification.


> In Ada one can declare anonymous arrays (an array without a type assigned
> to it.)  However what would such an array be used for, and are the bounds
> on it's use the same as for any other type of array.
> 
I'm not sure where you got the idea that "In Ada one can declare anonymous
arrays (an array without a type assigned to it.)."

Array objects can be declared without any name haven been given
to the _array type_, but the type of the _array elements_ must be declared.

For example, suppose you have declared some type named My_Type.

Then, you would (not using anonymous types) declare an array type like
this:

type My_Array_Type is array (Integer range <>) of My_Type;

Then, an object could be declared like this:

My_Array : My_Array_Type (1 .. 100);

Instead, using an anonymous array type, you could declare your
array object like this:

My_Array : array (1 .. 100) of My_Type;

In this case the type of My_Array is an anonymous array type,
but the elements are still of a specific type -- i.e., My_Type.
> I guess what I'm asking is if I declare an array such as 
> 
> some_array : array(1..N);
> 

The declaration you suggest is illegal.

> Can I assign values such as '1' '2' '3' 'H' 'y' '-' 'foo' all to the same
> array? And how would  those values be stored in memory? As Hex data with
> thier values revealed according to the  context of the code block they're
> in? How would I tell it to read the data stored in that block as Integers,
> Chars, et...?
> 
There are a number of ways to accomplish what you desire.

Since you speak of "reading the data," it souns like you might want to
be using an Ada.Streams.stream_Element array, and implementing a
memory stream package.  Then you can use the stream attribute of the
type of which you wish to read the data to read the data from the block.

I use thus technique a lot -- particularly in cases where the value of
some dataum read from the stream determines the type of subsequent
stream elements in the array.

 > As a side note, I'll be downloading the source code to GNAT so that I can
> get a better  understanding as to how this all works.
> 
I don't think the source code of anycompiler will do you as much good
as readsing a good Ada text regarding stream attributes, or even the
AdaLanguage Reference Manual.

> Any help would be appreciated.
> 
> Thanks
> 
> McDoobie
> 
> chris@dont.spam.me
> _______________________________________________
> comp.lang.ada mailing list
> comp.lang.ada@ada.eu.org
> http://ada.eu.org/mailman/listinfo/comp.lang.ada
> 




  parent reply	other threads:[~2001-08-20  8:29 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-08-20  6:18 Anonymous array clarification McDoobie
2001-08-20  8:03 ` Phil Thornley
2001-08-20 16:49   ` Tables vs functions (was Re: Anonymous array clarification.) Ray Blaak
2001-08-20 17:28     ` Marin David Condic
2001-08-20 21:02       ` Samuel T. Harris
2001-08-21 14:13         ` Marin David Condic
2001-08-20  8:29 ` David C. Hoos, Sr. [this message]
2001-08-20 10:26 ` Anonymous array clarification Larry Hazel
2001-08-20 13:37 ` Samuel T. Harris
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox