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,1dd28d5040ded1f8 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2002-05-17 09:08:40 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!small.news.tele.dk!195.238.2.15!skynet.be!skynet.be!transit.news.xs4all.nl!newsfeed.xs4all.nl!xs4all!not-for-mail From: Fraser Wilson Newsgroups: comp.lang.ada Subject: Re: Announce: Grace project site operational Date: 17 May 2002 18:09:53 +0200 Organization: XS4ALL Internet BV Sender: fwilson@FWILSON Message-ID: References: <4519e058.0205140718.3ddb1b2a@posting.google.com> <3CE15D0A.3050100@mail.com> <3ce21f37$1@pull.gecm.com> <3CE2AB7E.AD4A9956@san.rr.com> <3CE2B842.7060705@mail.com> <3CE2F4E3.DABF19D7@san.rr.com> <3CE524EE.4BCAE7F3@attbi.com> NNTP-Posting-Host: a80-126-24-12.adsl.xs4all.nl X-Trace: news1.xs4all.nl 1021651714 18087 80.126.24.12 (17 May 2002 16:08:34 GMT) X-Complaints-To: abuse@xs4all.nl NNTP-Posting-Date: 17 May 2002 16:08:34 GMT X-Newsreader: Gnus v5.7/Emacs 20.7 Xref: archiver1.google.com comp.lang.ada:24284 Date: 2002-05-17T16:08:34+00:00 List-Id: Mark Biggar writes: > No, your problem is not with Standard."*", it is with the implicit > definition of 'function "*"(Left, Right: Metres) return Metres' that > you get when you defined the type Metres. My bad; sloppy terminology. > Ada 95 provides a way to > turn off such implicit definitions like so: > > type Metres is new Float; > -- kill unwanted ops > function "*"(Left, Right: Metres) return Metres is abstract; > function "/"(Left, Right: Meters) return Metres is abstract; > -- define wanted ops > function "*"(Left, Right: Metres) return Area; > function "*"(Left: Float, Right: Metres) return Metres; This doesn't resolve the ambiguity of X : Metres; X := 2.0 * X; ... it just prevents you from compiling a program that makes an unambiguous call to the unwanted operations. Fraser.