comp.lang.ada
 help / color / mirror / Atom feed
From: "David Botton" <David@Botton.com>
Subject: Re: Access to classwide type
Date: 2000/07/24
Date: 2000-07-24T00:00:00+00:00	[thread overview]
Message-ID: <V87f5.23883$T5.38269@east2.usenetserver.com> (raw)
In-Reply-To: 8lij0o$fqa$1@nnrp1.deja.com

You may have missed Pat Rogers answer:

>Have a look at package System.Storage_Pools.  You'll note that the
>primitives are abstract -- i.e., dispatching.

Perhaps this will help: Similar to C++ the memory allocation of an object is
a "method" of the object. So just like any "virtual" member of an object
that dispatches, so too the "delete" method.

It is as if you had:

type X is abstract tagged null record;

function Delete (O : X) is abstract;


Then a dispatching function like this is possible:

function Dispatch_Delete (O : X'Class) is
begin
    Delete (O);
end Dispatch_Delete;

delete in C++ and Ada.Unchecked_Deallocation are not like free in C

David Botton


<reason67@my-deja.com> wrote
>Like I said, I am betting it reads the 'size inside the
> unchecked deallocation at run-time and deleting the size it determines.









  parent reply	other threads:[~2000-07-24  0:00 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-07-23  0:00 Access to classwide type reason67
2000-07-24  0:00 ` David Botton
2000-07-24  0:00   ` reason67
2000-07-24  0:00     ` Pascal Obry
2000-07-24  0:00     ` Larry Kilgallen
2000-07-24  0:00       ` reason67
2000-07-24  0:00         ` Larry Kilgallen
2000-07-24  0:00         ` David Botton [this message]
2000-07-24  0:00     ` David Starner
2000-07-25  0:00       ` Laurent Guerby
2000-07-24  0:00     ` Pat Rogers
2000-07-25  0:00     ` Matthew J 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