comp.lang.ada
 help / color / mirror / Atom feed
From: mcc@tyrolia.cs.princeton.edu (Martin C. Carlisle)
Subject: Re: "out" or "access"
Date: 1998/10/21
Date: 1998-10-21T00:00:00+00:00	[thread overview]
Message-ID: <70l1nq$mrb$1@cnn.Princeton.EDU> (raw)
In-Reply-To: 70kvnv$gvo$1@supernews.com

Be careful using access as below, as this creates two different
dispatched objects in the call (which is illegal).  See LRM 6.1(24)
and 3.9.2

--Martin

In article <70kvnv$gvo$1@supernews.com>,
Pat Rogers <progers@NOclasswideSPAM.com> wrote:
>Jeff Carter wrote in message <362DF0D3.BC101364@spam.innocon.com>...
>A bit too strong there, IMHO.  Access parameters are a very handy
>alternative when you want to derive from a type that has primitive
>subprograms with a formal parameter of a named access type.  Why?
>Because access parameters are not named access types, so the
>derivation provides primitives with the desired signatures.  For
>example:
>
>  type T1 is tagged ...
>
>  type T1_Pointer is access T1;
>
>  procedure Foo( This : in T1;   That : in T1_Pointer );
>
>Then, in a derivation:
>
>  type T2 is new T1 with ...
>
>This gives us:
>
>
>  procedure Foo( This : in T2;  That : in T1_Pointer );
>
>Note that the type of the formal 'That' is still T1_Pointer,
>probably not what we wanted.
>
>On the other hand, had we defined things as:
>
>  type T1 is tagged ...
>
>  -- don't need this now...  type T1_Pointer is access T1;
>
>  procedure Foo( This : in T1;   That : access T1 );
>
>The derivation would provide
>
>  procedure Foo( This : in T2;   That : access T2 );
>
>which is probably the desired result in this case.
-- 
Martin C. Carlisle, Computer Science, US Air Force Academy
mcc@cs.usafa.af.mil, http://www.usafa.af.mil/dfcs/bios/carlisle.html
DISCLAIMER:  This content in no way reflects the opinions, standard or 
policy of the US Air Force Academy or the United States Government.




  reply	other threads:[~1998-10-21  0:00 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-10-21  0:00 "out" or "access" =:-) Vincent
1998-10-21  0:00 ` Jeff Carter
1998-10-21  0:00   ` Pat Rogers
1998-10-21  0:00     ` Martin C. Carlisle [this message]
1998-10-22  0:00       ` Pat Rogers
1998-10-22  0:00     ` Robert A Duff
1998-10-21  0:00 ` Tucker Taft
1998-10-22  0:00   ` Pascal Obry
1998-10-29  0:00     ` Robert A Duff
1998-10-29  0:00       ` Matthew Heaney
1998-10-29  0:00         ` Robert A Duff
1998-10-30  0:00           ` dennison
1998-10-30  0:00             ` Matthew Heaney
1998-10-30  0:00               ` Robert A Duff
1998-10-31  0:00                 ` Matthew Heaney
1998-11-01  0:00                   ` Robert A Duff
1998-11-01  0:00                     ` Matthew Heaney
1998-11-01  0:00                       ` Robert A Duff
1998-11-02  0:00                         ` Matthew Heaney
1998-11-03  0:00                           ` Simon Wright
1998-11-16  0:00                             ` Matthew Heaney
1998-10-31  0:00                 ` dewar
1998-10-31  0:00                   ` Matthew Heaney
1998-10-21  0:00 ` dennison
replies disabled

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