comp.lang.ada
 help / color / mirror / Atom feed
From: dewar@merv.cs.nyu.edu (Robert Dewar)
Subject: Re: Access to Unconstrained Arrays
Date: 1997/04/18
Date: 1997-04-18T00:00:00+00:00	[thread overview]
Message-ID: <dewar.861379263@merv> (raw)
In-Reply-To: 335507B4.7A03@boeing.com


John says

<<procedure Main is
   type Lists is array(Natural range <>) of Integer;
   type Lists_Ptrs is access all Lists;

   procedure Do_Something(To : in out Lists_Ptrs) is...

   List1 : Lists(1..4) := (1,2,3,4);
   List2 : Lists       := (1,2,3,4);

begin
   Do_Something(To => List1);  -- Compilation Error.  Why?
   Do_Something(To => List2);  -- No problemo!!!
end Main;

List1 should be an anonymous constrained subtype of type Lists.  I was
under the impression that subtypes are simply a subset of their base
type.  Is this not the case for constrained subtypes of unconstrained
types?

Thanks in advance for any who may respond..>>

The compiler messages are correct. Your pointer type can only point
to objects of the appropriate unconstrained type, like List2. But the
type of List1 is constrained (pretty clearly from your source!!!) so
it is not suitable.

This somewhat annoying rule was done to save a little bit of memory in
some implementations (in some implementations, List2 will materialize
a dope, and List1 will not.

Incidentally, it is helpful if you are careful to post the EXACT sources
that you used, the source above is obvious junk (since you pass the
wrong type in both calls), but I am assumning some obvoius repair (such
as add aliased to both declarations, and replace in out with access.





  parent reply	other threads:[~1997-04-18  0:00 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-04-16  0:00 Access to Unconstrained Arrays John Harbaugh
1997-04-18  0:00 ` Joel VanLaven
1997-04-20  0:00   ` Robert Dewar
1997-04-18  0:00 ` Robert Dewar [this message]
1997-04-18  0:00 ` John Harbaugh
1997-04-20  0:00   ` Robert Dewar
1997-04-21  0:00   ` Joel VanLaven
1997-04-21  0:00     ` Robert A Duff
1997-04-23  0:00       ` Robert Dewar
replies disabled

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