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,38fc011071df5a27 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-05-31 11:49:08 PST Path: archiver1.google.com!postnews1.google.com!not-for-mail From: 18k11tm001@sneakemail.com (Russ) Newsgroups: comp.lang.ada Subject: Re: Ideas for Ada 200X Date: 31 May 2003 11:49:07 -0700 Organization: http://groups.google.com/ Message-ID: References: <6a90b886.0305262344.1d558079@posting.google.com> <3ED41344.7090105@spam.com> <3ED46D81.FF62C34F@0.0> <3ED46E07.4340CABC@0.0> <3ED4F3FD.A0EF7079@alfred-hilscher.de> <6vWcnTWjF83bD0qjXTWcpA@gbronline.com> NNTP-Posting-Host: 63.194.87.148 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: posting.google.com 1054406948 27268 127.0.0.1 (31 May 2003 18:49:08 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: 31 May 2003 18:49:08 GMT Xref: archiver1.google.com comp.lang.ada:38235 Date: 2003-05-31T18:49:08+00:00 List-Id: Wesley Groleau wrote in message news:<6vWcnTWjF83bD0qjXTWcpA@gbronline.com>... > > And let's not forget that +=, -=, etc. also allow for more efficient > > in-place vector/matrix operations because they avoid the need for a > > temporary. If you don't understand this, that's OK, but please don't > > argue with me because you will be wrong. > > Neither > A := A + B; > nor > A += B; -- if it existed in Ada > > would need a temporary except when required by checking rules > and exception rules. If one needs a temporary, the other does. > After all, they are the same, are they not? No, they aren't the same. The result is the same, but the second form can be implemented much more efficiently. The first form requires the construction of a temporary object to hold the sum, then it must copy the temp back over to A. The latter can be implemented without a temp and without the extra copy operation. You would be correct if += were implemented in terms of +, but that would be the wrong way.