comp.lang.ada
 help / color / mirror / Atom feed
From: Brian Rogoff <bpr@shell5.ba.best.com>
Subject: Re: Generic units and child units
Date: 1999/05/12
Date: 1999-05-12T00:00:00+00:00	[thread overview]
Message-ID: <Pine.BSF.4.10.9905122013100.17334-100000@shell5.ba.best.com> (raw)
In-Reply-To: 926545009.26110.0.nnrp-04.c2de848f@news.demon.co.uk

On Wed, 12 May 1999, Steve Folly wrote:

> Hi,
> 
> I'm having a bit of bother combining generic units and child units...
> 
> Originally I had a List [of integers] package which dynamically added
> integers into a List.Object type
> using the standard Node with a Previous and Next pointer, dynamically
> allocating each node as required.
> Fine so far.
> 
> Next, I implemented a List.Iterator child package to enable iteration
> through a List.Object
> backwards or forwards, starting at the head or tail of the list as required.
> Fine again.
> 
> Now, what I really wanted was to make List a generic package so it could
> store any type rather than
> just integers. OK, that works.
> 
> The problem I have is how to define the (now) generic List.Iterator package.
> The only way I
> could get it to compile was to include the keyword 'generic' ie. I now
> have...
> 
> generic
>    type Item is private;
> package List is
>     ... blah blah
> end List;
> 
> generic
> package List.Iterator is
>    ... blah blah
> end List.Iterator;

That's right, all children of a generic package must be generic. 
> 
> 
> In my test program I can instantiate a List for integers:
> 
> with List;
> procedure Test is
>     package Integer_List is new List (Item => Integer);

      package Integer_List_Iterator is new Integer_List.Iterator;

is the correct syntax.

> begin
>     ... blah blah
> end Test;
> 
> BUT, how do I get access to List.Iterator for the instantiated integer list.
> What is the correct syntax?
> 
> Am I even going about this the right way? If possible, I would like to keep
> the Iterator child package separate.

I'm still wondering the same thing. In similar libraries, I've used child
packages as you have used them. 

-- Brian






  reply	other threads:[~1999-05-12  0:00 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-05-12  0:00 Generic units and child units Steve Folly
1999-05-12  0:00 ` Brian Rogoff [this message]
1999-05-13  0:00   ` Robert A Duff
1999-05-15  0:00 ` Matthew Heaney
replies disabled

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