comp.lang.ada
 help / color / mirror / Atom feed
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




  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