comp.lang.ada
 help / color / mirror / Atom feed
From: Georg Bauhaus <sb463ba@d2-hrz.uni-duisburg.de>
Subject: Re: Generic child units
Date: Sat, 17 May 2003 00:23:41 +0000 (UTC)
Date: 2003-05-17T00:23:41+00:00	[thread overview]
Message-ID: <ba3ved$qbt$1@a1-hrz.uni-duisburg.de> (raw)
In-Reply-To: ubry6heul.fsf@nasa.gov

Stephen Leake <Stephe.Leake@nasa.gov> wrote:
: Rodrigo Garc?a <rodrigo.garcia.ARROBA.epfl.ch> writes:
: 
:> I need some enlightment in this area... Let us suppose that I have two
:> generic packages declared in separate files and one is the parent of
:> the other:
:> 
:> generic
:>     type Elem is private;
:> package Parent is
:>     type Vector is array (Integer range <>) of Elem;
:> end Parent;
:> 
:> generic
:> package Parent.Child is
:>     subtype Vector2D is Vector (1 .. 2);
:> end Parent.Child;
:> 
:> How can I instantiate the child package 
: 
: with Parent.Child;
: procedure Foo is
:   package Par is new Parent (Elem => Integer);
:   package Chi is new Par.Child;
: begin
: ...
: end Foo;
: 
: Note that the second instantiation is "Par.Child", not "Parent.Child".

I find it useful to compare to this variation of the packages, at least
it has shed some light (I think :-/) as far as the instantiation sequence
is concerned:

generic
   type Elem is private;
package Parent is
   type Vector is array (Integer range <>) of Elem;
   
   generic
   package Child is
      subtype Vector2D is Vector (1 .. 2);
   end Child;

end Parent;

So, elsewhere, you can't have an instance of child without an instance
of parent.

But you can have an instance of Child in Parent's body. I don't
know why, exactely, though.

(No wonder that the editors next door tell me that programmers
are funny people :-)


-- Georg



  parent reply	other threads:[~2003-05-17  0:23 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-13 17:46 Generic child units 
2003-05-13 18:38 ` Stephen Leake
2003-05-13 19:18   ` David C. Hoos
2003-05-14  7:56   ` 
2003-05-15 16:30     ` Stephen Leake
2003-05-16  1:08     ` Robert A Duff
2003-05-16 19:24       ` Stephen Leake
2003-05-16 23:47         ` Georg Bauhaus
2003-05-17  0:57           ` Robert A Duff
2003-05-17  1:11             ` Georg Bauhaus
2003-05-17  1:04         ` Robert A Duff
2003-05-16 23:44       ` Georg Bauhaus
2003-05-17  0:23   ` Georg Bauhaus [this message]
2003-05-17  1:00     ` Robert A Duff
replies disabled

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