From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,9ab1bf4be2d855dd X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-03-12 04:22:04 PST Path: supernews.google.com!sn-xit-03!supernews.com!logbridge.uoregon.edu!newsfeed.esat.net!do.de.uu.net!newsfeed01.sul.t-online.de!t-online.de!news.csl-gmbh.net!news-out.nuthinbutnews.com!news-in-austin.nuthinbutnews.com!feed2.newsfeeds.com!newsfeeds.com!news.hitter.net!news!news.crc.com!not-for-mail From: "David C. Hoos, Sr." Newsgroups: comp.lang.ada Subject: Re: Types, subtypes and ranges Date: Mon, 12 Mar 2001 05:57:57 -0600 Organization: CRC: A wholly owned subsidiary of Thermo Electron Message-ID: <98idi9$66g$1@hobbes2.crc.com> References: <97pfmt$ll30@tech.port.ac.uk> NNTP-Posting-Host: 198.175.145.56 X-Trace: hobbes2.crc.com 984398217 6352 198.175.145.56 (12 Mar 2001 11:56:57 GMT) X-Complaints-To: abuse@crc.com NNTP-Posting-Date: 12 Mar 2001 11:56:57 GMT X-Newsreader: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Xref: supernews.google.com comp.lang.ada:5634 Date: 2001-03-12T11:56:57+00:00 List-Id: Because TTT'Image is inherited from its base type T. If you had declared TT and TTT as new T types, the constraint error would have occurred, but then you wouldn't have been able to add anders to banders without type conversion, because the types would have been distinct. "Anders Wirzenius" wrote in message news:V4%q6.26$OG2.2999@read2.inet.fi... > > Mark Lundquist wrote in message ... > >Sorry for the late response (I lost access to news for a while...) > > > >WM wrote in message > >news:97pfmt$ll30@tech.port.ac.uk... > >> Hi, I am an ada beginner. Can anyone kindly tell me what's the difference > >> between TYPE and SUBTYPE? > > > ... > > subtype S is T; > > > >declares a new subtype S of the type of subtype T. This is also an example > >of a subtype declaration that does not include a constraint, so the > >constraint of S is the same as the constraint of T. (This is how you > >"rename" or create an alias for a type). What a subtype declaration looks > >like that adds a constraint depends on the type of the subtypes, e.g. for > an > >integer type you might have > > May I continue with two more questions: > 1. > given > > > > subtype S is T range 1 .. 10; > > what is the the difference between the above declaration and > type S is new T range 1..10; > > 2. > Why don't I get a constraint_error in the following code where I violate the > range of type TTT in the Put statement? > > with Ada.Text_IO; > procedure Why_Not_Constraint_Error is > type T is new Integer; > subtype TT is T range -2..-1; > subtype TTT is T range -1..-1; > anders : TT := -2; > bnders : TTT := -1; > use Ada.Text_IO; > begin > Put ( TTT'Image ( anders+bnders ) ); > end Why_Not_Constraint_Error; > > Anders > another beginner > > >