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=-0.4 required=5.0 tests=AC_FROM_MANY_DOTS,BAYES_00, LOTS_OF_MONEY autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,f51e93dacd9c7fca X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2002-06-28 16:56:04 PST Path: archiver1.google.com!news2.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!nntp.flash.net!newsxfer.visi.net!154.32.99.10.MISMATCH!psiuk-p2!psiuk-p3!uknet!psiuk-n!news.pace.co.uk!nh.pace.co.uk!not-for-mail From: "Marin David Condic" Newsgroups: comp.lang.ada Subject: Re: status of Ada STL? Date: Fri, 28 Jun 2002 09:36:10 -0400 Organization: Posted on a server owned by Pace Micro Technology plc Message-ID: References: <3d0ce154_5@news.bluewin.ch> <3d0e574d_2@news.bluewin.ch> <3d0fb5e8$1_3@news.bluewin.ch> <_cvS8.63267$UT.4317265@bgtnsc05-news.ops.worldnet.att.net> NNTP-Posting-Host: dhcp-200-133.miami.pace.co.uk X-Trace: nh.pace.co.uk 1025271371 19518 136.170.200.133 (28 Jun 2002 13:36:11 GMT) X-Complaints-To: newsmaster@news.cam.pace.co.uk NNTP-Posting-Date: 28 Jun 2002 13:36:11 GMT X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Xref: archiver1.google.com comp.lang.ada:26780 Date: 2002-06-28T13:36:11+00:00 List-Id: O.K. that's probably more accurate. My point was that the whole "vision" of the "=" operator is different from what Ada does. In C and C++ you can write an expression like: "X = Y = Z = 0 ;" because the "=" is viewed as a kind of binary function with side effects. (First you call "Z = 0" which has side effects on Z, then "Y = Z" which has side effects on Y, etc...) Whereas in Ada, the whole concept of an expression such as "X := Y := Z := 0;" would be foreign and incomprehensible, because it isn't viewed as a function with side effects, but as a fundamental statement of the language - "object gets the value of an expression". So what falls to the right of ":=" has to be an "expression" and the only way for that to be an expression is for ":=" to be a binary function which starts redefining what it means to be a function because of side effects and then of course you've got the leftmost ":=" which can't any longer be "object gets expression" because now ":=" is a function and that means you need to allow function calls where the return value is discarded and..... (deep breath) Pretty soon, you're thoroughly hosed - and for what? So that some ex C/C++ programmers don't have to go through the change of life necessary to get comfortable with "X := X + 1;"? (Suggestion: Get Over It! :-) I'd think that tinkering with something this fundamental in the language to change it into a function with side effects would have such profound implications, that it would either "break" Ada or Ada would start to take on the characteristics of "organically grown"* (rather than "designed") that I consider to be the style of C/C++. It would be A Bad Thing. *(IMHO, C++ shows all the signs of following the Harley Davidson Design Methodology - "If it breaks, make it bigger. If it sticks out, chrome it." :-) MDC -- Marin David Condic Senior Software Engineer Pace Micro Technology Americas www.pacemicro.com Enabling the digital revolution e-Mail: marin.condic@pacemicro.com "David Thompson" wrote in message news:_cvS8.63267$UT.4317265@bgtnsc05-news.ops.worldnet.att.net... > > Um, in C = assignment is the builtin operator, as is == equality. > Presumably you mean C++ where they can be user-defined > (overloaded) but only where at least one operand is of user-defined > i.e. class (including struct and union) or enum type. >