comp.lang.ada
 help / color / mirror / Atom feed
From: stt@houdini.camb.inmet.com (Tucker Taft)
Subject: Re: Extending A Generic Signature Package
Date: 1997/03/18
Date: 1997-03-18T00:00:00+00:00	[thread overview]
Message-ID: <E78yEu.15.0.-s@inmet.camb.inmet.com> (raw)
In-Reply-To: 5gkv23INN3rn@thalamus.cis.ohio-state.edu


david scott gibson (dgibson@thalamus.cis.ohio-state.edu) wrote:

: Hi.  Is any way in Ada to extend a generic signature package?  For
: example, if I had the signature package Base_Interface:

: generic

:     type T is limited private;

:     with procedure Op1(x: in out T);

: package Base_Interface is end;

: I would like to extend it to get a new interface with Op1 inherited.
: The following code is illegal, but gives an idea of what I'd like to
: do.

: with Base_Interface;

: generic

:     type T is new Base_Interface.T;  -- ILLEGAL!!

:     with procedure Op2(x: in out T);

: package Extended_Interface is end;

: I'd be particularly interested if there were some way of doing this
: without using tagged types.  For the language lawyers, what would be
: the technical barriers to allowing an extension of this sort (not
: including there are other ways in Ada to achieve a similar result :-)?

Well, I'm not exactly sure what is your goal, but the following
might satisfy you:

    with Base_Interface;
    generic
        with package Base is new Base_Interface(<>);
        with procedure Op2(x : in out Base.T);
    package Extended_Interface is end;

Given any instantiation of Base_Interface and an appropriate
"Op2", you can create an instantiation of Extended_Interface as follows:

    with Extended_Interface;
    with My_Base;
    with ...appropriate other stuff...
    package Extended is new Extended_Interface(My_Base, My_Op2);

: Dave
: dgibson@cis.ohio-state.edu

-Tucker Taft   stt@inmet.com   http://www.inmet.com/~stt/
Intermetrics, Inc.  Burlington, MA  USA




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

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-03-17  0:00 Extending A Generic Signature Package david scott gibson
1997-03-18  0:00 ` Tucker Taft [this message]
1997-03-18  0:00   ` Alexander V. Konstantinou
1997-03-21  0:00     ` Geert Bosch
1997-03-21  0:00       ` Brian Rogoff
1997-03-22  0:00         ` Robert A Duff
1997-03-21  0:00 ` Jon S Anthony
1997-03-21  0:00   ` david scott gibson
1997-03-22  0:00     ` Robert A Duff
1997-03-22  0:00 ` Jon S Anthony
1997-03-21  0:00   ` david scott gibson
1997-03-22  0:00     ` Robert A Duff
1997-03-25  0:00 ` Jon S Anthony
replies disabled

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