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




  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