From: Mats Weber <Mats.Weber@elca-matrix.ch>
Subject: Re: Question about base types
Date: 1997/01/27
Date: 1997-01-27T00:00:00+00:00 [thread overview]
Message-ID: <32ECD6B6.3B5A@elca-matrix.ch> (raw)
In-Reply-To: mheaney-ya023280002601971414080001@news.ni.net
> I have a question about the relationship between types, first named
> subtypes, and base types.
>
> If I declare an integer type, say
>
> type T is range 1 .. 10;
>
> Then I think that according to the Ada model this means I'm declaring some
> unnamed type, but whose first named subtype is T:
>
> type <anonomous parent of T> is System.Min_Int .. System.Max_Int;
> subtype T is <anonomous parent of T> range 1 .. 10;
>
> Do I have this correct?
No, but almost. the first line is wrong and should read
type <anonomous parent of T> is range <min> .. <max>;
where <min> and <max> are anonymous static implementation defined
constants that depend on the range you give in your type declaration.
For 1 .. 10, the compiler is quite likely to choose <min> = -128 and
<max> = 127 in order to store your type in a single byte.
> Now what is the relationship of T'Base to this model? Is T'Base the name
> of the anonomous parent type
Yes
> type T'Base is System.Min_Int .. System.Max_Int;
> subtype T is T'Base range 1 .. 10;
>
> Did the "anonmous parent" go away in Ada 95? Or is it still
The mechanism has changed a little, but the effect remains basically the
same.
> I can declare objects of type T'Base, right?
You can in Ada 95, but not in Ada 83.
> O : T'Base;
>
> Is this declaration the same as
>
> O : <anonomous parent of T>;
>
> Enquiring minds want to know...
This cannot be answered because the second declaration is illegal :-).
next prev parent reply other threads:[~1997-01-27 0:00 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
1997-01-26 0:00 Question about base types Matthew Heaney
1997-01-27 0:00 ` Mats Weber [this message]
1997-01-28 0:00 ` Robert A Duff
1997-01-29 0:00 ` Robert Dewar
1997-01-27 0:00 ` Robert A Duff
1997-01-30 0:00 ` Matthew Heaney
1997-01-30 0:00 ` Matthew Heaney
1997-01-30 0:00 ` Robert Dewar
1997-01-30 0:00 ` Matthew Heaney
[not found] ` <EACHUS.97Feb3221558@spectre.mitre.org>
[not found] ` <dewar.855063927@merv>
[not found] ` <EACHUS.97Feb6145918@spectre.mitre.org>
[not found] ` <dewar.855276722@merv>
1997-02-07 0:00 ` Mats Weber
1997-02-08 0:00 ` Robert Dewar
1997-02-10 0:00 ` Mats Weber
1997-02-11 0:00 ` Robert Dewar
[not found] ` <32FB45D4.2160@watson.ibm.com>
1997-02-10 0:00 ` Robert Dewar
1997-02-08 0:00 ` Robert Dewar
1997-02-09 0:00 ` Matthew Heaney
1997-02-09 0:00 ` Robert Dewar
1997-02-09 0:00 ` Matthew Heaney
1997-02-10 0:00 ` Robert Dewar
1997-02-10 0:00 ` Larry Kilgallen
1997-02-11 0:00 ` Robert I. Eachus
1997-02-12 0:00 ` Robert Dewar
1997-01-28 0:00 ` Robert I. Eachus
1997-01-28 0:00 ` Mats Weber
1997-01-29 0:00 ` Robert I. Eachus
1997-01-30 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