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-Thread: 103376,e01fe1b326df26d4 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news3.google.com!newshub.sdsu.edu!elnk-nf2-pas!newsfeed.earthlink.net!stamper.news.pas.earthlink.net!newsread3.news.pas.earthlink.net.POSTED!a6202946!not-for-mail From: Jeffrey Carter Organization: jrcarter commercial-at acm [period | full stop] org User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.7.8) Gecko/20050511 X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Division by zero References: <79ahr0jozmqb$.10jzllrcjpmsv.dlg@40tude.net> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Message-ID: Date: Tue, 14 Jun 2005 02:31:02 GMT NNTP-Posting-Host: 4.240.244.177 X-Complaints-To: abuse@earthlink.net X-Trace: newsread3.news.pas.earthlink.net 1118716262 4.240.244.177 (Mon, 13 Jun 2005 19:31:02 PDT) NNTP-Posting-Date: Mon, 13 Jun 2005 19:31:02 PDT Xref: g2news1.google.com comp.lang.ada:11330 Date: 2005-06-14T02:31:02+00:00 List-Id: Robert A Duff wrote: > It's hard to come up with legitimate examples of that. > As others have pointed out, "raise C_E" is usually the > best way to raise C_E. I agree, though they do exist. > Here's an example that agrees with your point: Good example. > (In fact, if Gizmos is static, then the above *is* illegal in Ada 95, > but not Ada 83.) Are you sure? In my examples, both operands are static. > The rules about static expressions do not apply to user-defined > operators, which can do anything you like. This is an area of Ada 95 that sometimes bites me because I got used to the Ada-83 rules. In Ada 83, any static universal expression was evaluated at compile time. In Ada 95, if the context of the expression has a type, the operator for that type must be invoked; since that operator may be redefined, the expression must be evaluated at run time. > Careful! That looks like an infinite recursion. Well spotted. I could admit that I didn't pay attention to that branch because it would never be invoked, but instead I'll claim that infinite recursion was the desired behavior if you try to divide by anything other than zero. -- Jeff Carter "Blessed are they who convert their neighbors' oxen, for they shall inhibit their girth." Monty Python's Life of Brian 83