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,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,54889de51045a215 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-10-17 13:43:39 PST Path: archiver1.google.com!news2.google.com!news.maxwell.syr.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!news-stoc.telia.net!news-stoa.telia.net!telia.net!nntp.inet.fi!inet.fi!ash.uu.net!spool.news.uu.net!not-for-mail Date: Fri, 17 Oct 2003 16:43:38 -0400 From: Hyman Rosen User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3 X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: += in ada References: <3F7316F7.219F@mail.ru> <17cd177c.0310010606.52da88f3@posting.google.com> <3F8BC74F.2CFBFF37@0.0> <1066312000.671303@master.nyc.kbcfp.com> <1066322883.139702@master.nyc.kbcfp.com> <3F8F372D.9040801@comcast.net> <1066400123.238640@master.nyc.kbcfp.com> <1066405226.728944@master.nyc.kbcfp.com> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Organization: KBC Financial Products Message-ID: <1066423418.400265@master.nyc.kbcfp.com> Cache-Post-Path: master.nyc.kbcfp.com!unknown@nightcrawler.nyc.kbcfp.com X-Cache: nntpcache 3.0.1 (see http://www.nntpcache.org/) NNTP-Posting-Host: 204.253.250.10 X-Trace: 1066423418 10625 204.253.250.10 Xref: archiver1.google.com comp.lang.ada:1101 Date: 2003-10-17T16:43:38-04:00 List-Id: Lutz Donnerhacke wrote: > Fine. So there is no need for augmented assignments. Right? That depends on your definition of "need". As I said, in looking through the C++ code that we have written to augment our trading system, I found about 500 uses of these operators (none of them controlling for loops, despite what Robert Eachus believes). The code involved spends its time adding things up, multiplying by interest and exchange rates, dividing by 100 to convert percentages, et al. Did we "need" to use them? Certainly not - we could have written all of them as A = A op B, and used references for the rare complicated left-hand sides. Did we use them since they are part of the language? Absolutely. > There are syntactic elements (like nested functions or returning > unconstraint types) which are used in Ada code very frequently. > Does this imply, that C++ should add this instantanously? Yes. But the C++ folks are as recalcitrant and stubborn as the Ada ones :-) >>And now that you mention it, there's a considerable problem with >>the renames idiom; you must repeat the type of the thing you're >>renaming. > > You know the type. So there is no problem with. How do you know the type? That is, if I write a.b.c.d.count := a.b.c.d.count + 1; or even, using a pre-existing Inc, Inc(a.b.c.d.count); I have no need to know the type of count. If I use a renames, I have to go and look the type up. If someone chooses to change the type, I have to go and modify all the renames declarations. >>I would hope that you at least use a generic instantiation instead of >>littering your code all over the place with little bird droppings. > > It's your code. I prefer renaming. I meant, in order to generate the Add procedure.