From: mheaney@ni.net (Matthew Heaney)
Subject: Re: limited/non-limited in Ada95
Date: 1997/10/19
Date: 1997-10-19T00:00:00+00:00 [thread overview]
Message-ID: <mheaney-ya023680001910971304190001@news.ni.net> (raw)
In-Reply-To: 344a4329.812635@SantaClara01.news.InterNex.Net
In article <344a4329.812635@SantaClara01.news.InterNex.Net>, tmoran@bix.com
(Tom Moran) wrote:
>>type DT is ...;
>>type DT_Access is access all DT;
>
>>type T (D : DT_Access) is private;
>
>>You can then use Unchecked_Access:
>
>>declare
>> D : aliased DT;
>> O : T (D'Unchecked_Access);
>>begin
>Could you expand on that, I'm confused. I'd like
> -- existing type T is limited, tagged
> type Newer(X:in some_access_type) is new T with ...
I thought the problem was that, because T was non-limited, you couldn't add
an access discriminant. But you can add a discriminant of a named access
type as a discriminant, even if the type is non-limited. (Note: "access
discriminant" and "discriminant of a named access type" are two different
things. The former is only allowed for types that are limited.)
If T is limited, then it's probably simpler just to add an access
discrimant to the derived type:
type T is tagged limited private;
type NT (D : access DT) is new T with private;
Although it's perfectly legal to make the discriminant of NT have a named type:
type NT (D : DT_Access) is new T with private;
>Another problem is that once a tagged type is non-limited, no
>extension can be, or have components that are,llimited.
Yes, that's true. But you could always add a discriminant of a named
access type to the derived type, to point to objects that are limited.
--------------------------------------------------------------------
Matthew Heaney
Software Development Consultant
<mailto:matthew_heaney@acm.org>
(818) 985-1271
next prev parent reply other threads:[~1997-10-19 0:00 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
1997-10-13 0:00 limited/non-limited in Ada95 Tom Moran
1997-10-16 0:00 ` Matthew Heaney
1997-10-17 0:00 ` Jon S Anthony
1997-10-18 0:00 ` Matthew Heaney
1997-10-21 0:00 ` Jon S Anthony
1997-10-21 0:00 ` Robert A Duff
1997-10-22 0:00 ` Jon S Anthony
1997-10-23 0:00 ` Fergus Henderson
1997-10-23 0:00 ` Jon S Anthony
1997-10-24 0:00 ` Geert Bosch
1997-10-23 0:00 ` Jon S Anthony
1997-10-22 0:00 ` Robert Dewar
1997-10-22 0:00 ` Jon S Anthony
1997-10-21 0:00 ` Robert Dewar
1997-10-21 0:00 ` Jon S Anthony
1997-10-22 0:00 ` Robert Dewar
1997-10-22 0:00 ` Jon S Anthony
1997-10-18 0:00 ` Tom Moran
1997-10-18 0:00 ` Matthew Heaney
1997-10-19 0:00 ` Tom Moran
1997-10-19 0:00 ` Matthew Heaney [this message]
1997-10-21 0:00 ` Tom Moran
1997-10-21 0:00 ` Matthew Heaney
1997-10-21 0:00 ` Robert A Duff
1997-10-21 0:00 ` 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