From: mheaney@on2.com (Matthew Heaney)
Subject: Re: Generic formal access types
Date: 5 May 2003 09:40:31 -0700
Date: 2003-05-05T16:40:31+00:00 [thread overview]
Message-ID: <1ec946d1.0305050840.4a1ffd48@posting.google.com> (raw)
In-Reply-To: wccof2lqoad.fsf@shell01.TheWorld.com
Robert A Duff <bobduff@shell01.TheWorld.com> wrote in message news:<wccof2lqoad.fsf@shell01.TheWorld.com>...
>
> That works only if you want to declare the pointer type at the same
> place where the instantiation is. In many cases, you don't. For this
> reason, it's almost always better to pass the pointer type into
> generics.
That is indeed how the Charles library works wrt the Generic_Element
function: the client has to supply the access type.
To ensure complete generality for a reuseable component, passing in
the access type is the correct choice, since in many cases the client
already has an access type that goes with the designated type.
http://home.earthlink.net/~matthewjheaney/charles/
> When I invented the Address_To_Access_Conversions package (see chap 13),
> I made the mistake of declaring the pointer type inside the generic,
> because I thought the primary use would be peek/poke functionality, so
> you would always say ".all" right away. And it makes the instantiation
> simpler. But it turns out to be a pain.
I think a bigger problem is that the declared pointer type doesn't
turn off the storage pool. If the designated type is T'Class, doesn't
this drag a lot of extra run-time baggage?
If you're converting from Address to Object_Pointer, then there's no
storage pool anyway, so it never made sense to me to give
Object_Pointer a storage pool.
> The "right" solution to the OP's problem is to pass in the designated
> type and the pointer type. Yes, that requires an extra line of code at
> the instantiation. But I don't think there's a better solution.
Yes.
next prev parent reply other threads:[~2003-05-05 16:40 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-04-30 18:30 Generic formal access types
2003-04-30 19:27 ` Simon Wright
2003-05-01 8:58 `
2003-04-30 21:42 ` Chad R. Meiners
2003-05-01 9:06 `
2003-05-01 9:58 ` Martin Krischik
2003-05-01 13:00 `
2003-05-02 9:14 ` Ludovic Brenta
2003-05-02 10:43 `
2003-05-02 10:50 `
2003-05-01 10:09 `
2003-05-02 1:14 ` tmoran
2003-05-02 9:52 `
2003-05-02 16:18 ` tmoran
2003-05-02 16:57 ` Robert A Duff
2003-05-02 19:39 ` Randy Brukardt
2003-05-05 8:14 `
2003-05-05 16:40 ` Matthew Heaney [this message]
2003-05-05 17:34 ` Robert A Duff
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox