From: Matthew Heaney <matthew_heaney@acm.org>
Subject: Re: Can't export object of private type
Date: 1999/03/01
Date: 1999-03-01T00:00:00+00:00 [thread overview]
Message-ID: <m3zp5x6o96.fsf@mheaney.ni.net> (raw)
In-Reply-To: 7be1p0$mjg$4@plug.news.pipex.net
"Nick Roberts" <Nick.Roberts@dial.pipex.com> writes:
> One little detail is that the primitive operations of T should all (with
> possible exceptions) be made abstract, since T is only a 'signature' type,
> e.g.:
>
> package P is
>
> type T (<>) is abstract tagged limited private;
>
> <primitive ops (abstract)>
>
> type T_Access is access all T'Class;
>
> function Ref return T_Access is abstract;
This is wrong. Function Ref is NOT a primitive operation for type T.
It's just a way of returning a pointer to the object declared in the
body.
To use the scheme I've shown, you'd have to do this:
declare
Singleton : Singleton_Type renames Ref.all;
begin
Do_Something (Singleton);
Do_Something_Else (Singleton);
...
end;
A simpler technique is to make the primitive operations of the type take
access parameters, so then you won't have to dereference the pointer:
function Singleton return T_Access;
...
Do_Something (Singleton);
Do_Something_Else (Singleton);
next prev parent reply other threads:[~1999-03-01 0:00 UTC|newest]
Thread overview: 128+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <F7JoCB.JxB@syd.csa.com.au>
1999-02-24 0:00 ` Can't export object of private type Don Harrison
1999-02-24 0:00 ` Tom Moran
1999-02-24 0:00 ` Samuel Mize
1999-02-24 0:00 ` Tucker Taft
1999-02-25 0:00 ` Don Harrison
1999-02-25 0:00 ` robert_dewar
1999-02-26 0:00 ` Don Harrison
1999-02-26 0:00 ` robert_dewar
1999-02-26 0:00 ` bourguet
1999-02-26 0:00 ` Samuel T. Harris
1999-02-27 0:00 ` Simon Wright
1999-02-27 0:00 ` Jean-Pierre Rosen
1999-02-28 0:00 ` dewar
1999-03-01 0:00 ` bourguet
1999-02-26 0:00 ` dennison
1999-03-01 0:00 ` Stephen Leake
1999-03-01 0:00 ` Don Harrison
1999-03-01 0:00 ` robert_dewar
1999-03-03 0:00 ` Don Harrison
1999-03-03 0:00 ` robert_dewar
1999-02-27 0:00 ` Brian Rogoff
1999-03-01 0:00 ` robert_dewar
1999-02-25 0:00 ` Samuel Mize
1999-02-26 0:00 ` Don Harrison
1999-02-27 0:00 ` Nick Roberts
1999-03-01 0:00 ` Don Harrison
1999-03-01 0:00 ` Matthew Heaney
1999-03-01 0:00 ` Nick Roberts
1999-03-01 0:00 ` Nick Roberts
1999-03-01 0:00 ` Don Harrison
1999-03-02 0:00 ` Matthew Heaney
1999-03-03 0:00 ` Don Harrison
1999-03-03 0:00 ` Samuel Mize
1999-03-04 0:00 ` Don Harrison
1999-03-07 0:00 ` Ehud Lamm
1999-03-03 0:00 ` Robert A Duff
1999-03-04 0:00 ` Don Harrison
1999-03-04 0:00 ` Robert A Duff
1999-03-01 0:00 ` Don Harrison
1999-03-02 0:00 ` Matthew Heaney
1999-02-28 0:00 ` Matthew Heaney
1999-03-01 0:00 ` Nick Roberts
1999-03-01 0:00 ` Matthew Heaney
1999-03-01 0:00 ` Matthew Heaney [this message]
1999-03-02 0:00 ` Nick Roberts
1999-03-01 0:00 ` Samuel Mize
1999-02-25 0:00 ` fraser
1999-02-26 0:00 ` Don Harrison
1999-02-26 0:00 ` fraser
1999-03-01 0:00 ` Don Harrison
1999-03-01 0:00 ` Matthew Heaney
[not found] ` <7b6nqe$75m$1@remarq.com>
1999-02-26 0:00 ` fraser
1999-02-27 0:00 ` Nick Roberts
1999-02-26 0:00 ` Samuel Mize
1999-03-01 0:00 ` Don Harrison
1999-03-01 0:00 ` Matthew Heaney
1999-03-02 0:00 ` fraser
1999-03-03 0:00 ` Don Harrison
1999-02-28 0:00 ` Matthew Heaney
1999-02-28 0:00 ` Matthew Heaney
1999-02-28 0:00 ` Matthew Heaney
1999-03-01 0:00 ` Tom Moran
1999-03-02 0:00 ` Matthew Heaney
1999-03-02 0:00 ` Tom Moran
1999-03-02 0:00 ` Matthew Heaney
1999-03-02 0:00 ` Tom Moran
1999-03-02 0:00 ` Matthew Heaney
1999-03-02 0:00 ` nabbasi
1999-03-02 0:00 ` Matthew Heaney
1999-03-03 0:00 ` Don Harrison
1999-03-03 0:00 ` Single Extension; Polymorphic Arrays Nick Roberts
1999-03-03 0:00 ` Nick Roberts
1999-03-08 0:00 ` Matthew Heaney
1999-03-08 0:00 ` Tucker Taft
[not found] ` <m3ogm40wav.fsf@mheaney.ni.net>
1999-03-08 0:00 ` Tucker Taft
1999-03-08 0:00 ` dennison
1999-03-09 0:00 ` Nick Roberts
1999-03-08 0:00 ` Nick Roberts
1999-03-08 0:00 ` Nick Roberts
1999-03-03 0:00 ` Can't export object of private type Don Harrison
1999-03-03 0:00 ` Don Harrison
1999-03-03 0:00 ` Nick Roberts
1999-03-04 0:00 ` Don Harrison
1999-03-04 0:00 ` Nick Roberts
1999-03-04 0:00 ` robert_dewar
1999-03-05 0:00 ` Nick Roberts
1999-03-05 0:00 ` Robert A Duff
1999-03-05 0:00 ` Abstract Subprograms of Untagged Types Nick Roberts
1999-03-05 0:00 ` Tucker Taft
1999-03-05 0:00 ` Nick Roberts
1999-03-06 0:00 ` robert_dewar
1999-03-05 0:00 ` robert_dewar
1999-03-04 0:00 ` Can't export object of private type Nick Roberts
1999-03-08 0:00 ` Matthew Heaney
1999-03-09 0:00 ` Don Harrison
1999-03-09 0:00 ` Matthew Heaney
1999-03-09 0:00 ` Nick Roberts
1999-03-10 0:00 ` Don Harrison
1999-03-10 0:00 ` Matthew Heaney
1999-03-04 0:00 ` fraser
1999-03-09 0:00 ` Don Harrison
1999-03-08 0:00 ` Matthew Heaney
1999-03-08 0:00 ` Nick Roberts
1999-03-08 0:00 ` Matthew Heaney
1999-03-10 0:00 ` Don Harrison
1999-03-10 0:00 ` Matthew Heaney
1999-03-10 0:00 ` dennison
1999-03-10 0:00 ` Robert A Duff
1999-03-10 0:00 ` robert_dewar
1999-03-10 0:00 ` dennison
1999-03-11 0:00 ` dennison
1999-03-10 0:00 ` robert_dewar
1999-03-10 0:00 ` dennison
1999-03-10 0:00 ` robert_dewar
1999-03-10 0:00 ` dennison
1999-03-11 0:00 ` bill
1999-03-11 0:00 ` dennison
1999-03-11 0:00 ` Scott Ingram
1999-03-11 0:00 ` Larry Kilgallen
1999-03-12 0:00 ` dewar
1999-03-11 0:00 ` dennison
1999-03-11 0:00 ` robert_dewar
1999-03-11 0:00 ` Don Harrison
1999-03-12 0:00 ` robert_dewar
1999-03-11 0:00 ` Don Harrison
1999-03-03 0:00 ` Don Harrison
1999-02-28 0:00 ` Matthew Heaney
1999-02-28 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