From: Matthew Heaney <matthew_heaney@acm.org>
Subject: Re: Ada OO Mechanism
Date: 1999/06/09
Date: 1999-06-09T00:00:00+00:00 [thread overview]
Message-ID: <m3zp2af9g8.fsf@mheaney.ni.net> (raw)
In-Reply-To: t7r9nmz8ou.fsf@calumny.jyacc.com
Hyman Rosen <hymie@prolifics.com> writes:
> Also, I stated in an earlier message that I thought not allowing T'Class
> variables in records was not orthogonal, but understandable in light of
> the above. Now, suppose I need a function that returns a pair of values,
> one of which is a T'Class and the other a boolean. Is there a way to do
> this?
Not really, no. Here are some ideas:
1) return a record containing a class-wide component allocated on the
heap
type RT is
record
O : T_Class_Access;
B : Boolean;
end record;
function Func_Ret_RT return RT;
2) Break in the function apart into two functions:
function Func_Ret_T_Tic_Class return T'Class;
function Func_Ret_Boolean return Boolean;
This doesn't preserve atomicity, however. (But that's not always an
issue anyway.)
3) Embed the Boolean value in state of the object:
function Func_Ret_T_Tic_Class return T'Class;
function Func_Ret_Boolean (O : T) return Boolean;
> I can't return a record containing the pair, because I can't have
> such a record.
That is correct. Although, if you follow approach 1), you can put the
class-wide value on the heap.
> I assume that a procedure with a pair of out parameters won't work,
> because the T'Class variable which receives the output must be
> initialized when declared, and then its tag can't change.
Yes, that is correct.
> So, is there a way?
See the three bullets above.
next prev parent reply other threads:[~1999-06-09 0:00 UTC|newest]
Thread overview: 116+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-05-20 0:00 Ada OO Mechanism Shawn M. Root
1999-05-20 0:00 ` Samuel Mize
1999-05-20 0:00 ` David Botton
1999-05-20 0:00 ` Samuel Mize
1999-05-20 0:00 ` David Botton
1999-05-24 0:00 ` Hyman Rosen
1999-05-24 0:00 ` Robert Dewar
1999-05-24 0:00 ` Hyman Rosen
1999-05-24 0:00 ` David Starner
1999-05-24 0:00 ` bob
1999-05-24 0:00 ` David Starner
1999-05-25 0:00 ` Ole-Hjalmar Kristensen
1999-05-25 0:00 ` Florian Weimer
1999-05-25 0:00 ` Mark A Biggar
1999-05-25 0:00 ` Hyman Rosen
1999-05-25 0:00 ` Richard D Riehle
1999-05-25 0:00 ` David Botton
1999-05-26 0:00 ` Tom Moran
1999-05-27 0:00 ` Aidan Skinner
1999-05-25 0:00 ` Samuel Mize
1999-05-25 0:00 ` Hyman Rosen
1999-05-25 0:00 ` Richard D Riehle
1999-05-25 0:00 ` Hyman Rosen
1999-05-26 0:00 ` Ray Blaak
1999-05-26 0:00 ` Richard D Riehle
1999-05-26 0:00 ` Hyman Rosen
1999-05-27 0:00 ` Richard D Riehle
1999-06-05 0:00 ` Matthew Heaney
1999-06-07 0:00 ` Hyman Rosen
1999-05-28 0:00 ` Laurent Guerby
1999-06-05 0:00 ` Matthew Heaney
1999-06-07 0:00 ` Hyman Rosen
1999-06-08 0:00 ` Matthew Heaney
1999-06-08 0:00 ` Hyman Rosen
1999-06-08 0:00 ` Samuel Mize
1999-06-08 0:00 ` Hyman Rosen
1999-06-08 0:00 ` Robert Dewar
1999-06-08 0:00 ` Stanley R. Allen
1999-06-08 0:00 ` Markus Kuhn
1999-06-08 0:00 ` Stanley R. Allen
1999-05-26 0:00 ` Hyman Rosen
[not found] ` <t7zp2sr6yf.fsf@calumny.jyacc.c <t7emjmmx8w.fsf@calumny.jyacc.com>
1999-06-08 0:00 ` Larry Kilgallen
1999-06-08 0:00 ` Hyman Rosen
1999-06-08 0:00 ` Tucker Taft
1999-06-08 0:00 ` Brian Rogoff
1999-06-09 0:00 ` Robert Dewar
[not found] ` < <375E92CB.27850620@averstar.com>
1999-06-09 0:00 ` Brian Rogoff
1999-06-14 0:00 ` Robert A Duff
1999-06-09 0:00 ` Tucker Taft
1999-06-09 0:00 ` Matthew Heaney [this message]
1999-06-09 0:00 ` Samuel Mize
[not found] ` <t7zp2sr6yf.fsf@calumny.jyacc.c <t7r9nmz8ou.fsf@calumny.jyacc.com>
1999-06-08 0:00 ` Larry Kilgallen
1999-06-08 0:00 ` Hyman Rosen
1999-06-14 0:00 ` Robert A Duff
[not found] ` <t7zp2sr6yf.fsf@calumny.jyacc.c <375d9a3d.e1cccc63@averstar.com>
1999-06-09 0:00 ` Larry Kilgallen
1999-06-09 0:00 ` Tucker Taft
1999-05-25 0:00 ` Samuel Mize
1999-05-25 0:00 ` Chris
1999-05-25 0:00 ` David Botton
1999-05-27 0:00 ` Aidan Skinner
1999-05-27 0:00 ` Gautier
1999-05-27 0:00 ` Samuel Mize
1999-05-25 0:00 ` Brian Rogoff
1999-05-25 0:00 ` Jim
1999-05-26 0:00 ` Robert Dewar
1999-05-26 0:00 ` Brian Rogoff
1999-05-27 0:00 ` Samuel Mize
1999-05-27 0:00 ` Hyman Rosen
1999-05-28 0:00 ` Samuel Mize
1999-05-28 0:00 ` Laurent Guerby
1999-05-28 0:00 ` Richard D Riehle
1999-05-28 0:00 ` Tom Moran
1999-05-27 0:00 ` Samuel Mize
1999-05-27 0:00 ` Jon S Anthony
1999-05-28 0:00 ` Robert I. Eachus
1999-05-28 0:00 ` Brian Rogoff
1999-05-29 0:00 ` Ehud Lamm
1999-05-30 0:00 ` chris
1999-05-30 0:00 ` Harry George
1999-05-30 0:00 ` Vladimir Olensky
1999-05-31 0:00 ` Robert Dewar
1999-05-30 0:00 ` Robert Dewar
1999-05-31 0:00 ` Vladimir Olensky
1999-06-03 0:00 ` Dale Stanbrough
1999-06-02 0:00 ` mike
1999-06-03 0:00 ` Robert Dewar
1999-06-06 0:00 ` David Botton
1999-06-07 0:00 ` Robert Dewar
1999-06-01 0:00 ` Richard D Riehle
1999-06-03 0:00 ` Matthew Heaney
1999-06-03 0:00 ` Matthew Heaney
1999-05-24 0:00 ` Mike
1999-05-25 0:00 ` Robert Dewar
1999-05-25 0:00 ` Samuel Mize
1999-05-25 0:00 ` Hyman Rosen
1999-05-25 0:00 ` David Starner
1999-05-26 0:00 ` Ole-Hjalmar Kristensen
1999-05-26 0:00 ` Laurent Guerby
1999-05-26 0:00 ` Hyman Rosen
1999-05-28 0:00 ` Laurent Guerby
1999-06-01 0:00 ` Hyman Rosen
1999-06-03 0:00 ` Fraser Wilson
1999-06-03 0:00 ` Matthew Heaney
1999-06-03 0:00 ` Hyman Rosen
1999-05-21 0:00 ` Dale Stanbrough
1999-05-20 0:00 ` bob
1999-05-21 0:00 ` Dale Stanbrough
1999-05-21 0:00 ` Richard D Riehle
1999-05-21 0:00 ` Shawn M. Root
1999-05-21 0:00 ` Richard D Riehle
1999-05-25 0:00 ` Shawn M. Root
1999-05-21 0:00 ` Marin David Condic
1999-05-21 0:00 ` Dan Nagle
1999-05-24 0:00 ` Marin David Condic
1999-05-21 0:00 ` Steve
1999-05-25 0:00 ` Don Overheu
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox