comp.lang.ada
 help / color / mirror / Atom feed
From: John Harbaugh <john.s.harbaugh2@boeing.com>
Subject: Re: Access to Unconstrained Arrays
Date: 1997/04/18
Date: 1997-04-18T00:00:00+00:00	[thread overview]
Message-ID: <3357B77F.44EE@boeing.com> (raw)
In-Reply-To: 335507B4.7A03@boeing.com


John Harbaugh wrote:
> 
> When trying to pass pointers to objects of unconstrained array type, I
> am getting confusing compiler errors.  For example:
> 
> 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.
> 
>    - John


How embarrasing, please excuse the mangled code.  What I meant to show
was:

 procedure Main is
    type Lists is array(Natural range <>) of Integer;
    type Lists_Ptrs is access all Lists;
 
    procedure Do_Something(To : in Lists_Ptrs) is separate;
 
    List1 : aliased Lists(1..4) := (1,2,3,4);
    List2 : aliased Lists       := (1,2,3,4);

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



Apparently, the problem is that Lists(1..4) is a different subtype
indication than Lists.

Sheepishly,

   - John




  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
1997-04-18  0:00 ` John Harbaugh [this message]
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