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,25b9eb5c3a89bced X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news4.google.com!news3.google.com!newsfeed2.dallas1.level3.net!news.level3.com!newsfeed-00.mathworks.com!kanaga.switch.ch!news-zh.switch.ch!switch.ch!cernne03.cern.ch!cern.ch!news From: Maciej Sobczak Newsgroups: comp.lang.ada Subject: Re: where exactly c++,c fail and Ada gets thru' Date: Thu, 27 Apr 2006 12:07:49 +0200 Organization: CERN - European Laboratory for Particle Physics Message-ID: References: <1145852356.559455.222600@i39g2000cwa.googlegroups.com> <1145855124.720029.35280@t31g2000cwb.googlegroups.com> <1235818.stAph9vF03@linux1.krischik.com> NNTP-Posting-Host: abpc10883.cern.ch Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: sunnews.cern.ch 1146132468 15225 (None) 137.138.37.241 X-Complaints-To: news@sunnews.cern.ch User-Agent: Mozilla Thunderbird 1.0.8-1.4.1.SL (X11/20060424) X-Accept-Language: en-us, en In-Reply-To: <1235818.stAph9vF03@linux1.krischik.com> Xref: g2news2.google.com comp.lang.ada:3944 Date: 2006-04-27T12:07:49+02:00 List-Id: Martin Krischik wrote: > Now say we have a suitable C++ range template: > > typedef range Y_Type; > typedef range X_Type; > > Y_Type F (X_Type X) > { > return X + 3; > } > > Y_Type G (X_Type X) > { > return X + 7; > } > > Now anyone up to the challenge to define: > > template > range::operator = (Base_Type right) > > template > range::operator + (Base_Type right) > > template > range::range (Base_Type right) > > in such a way that it works like Ada - inclusive the *realistic* change that > the compiler will optimize away the range check in F (). The C++ standard does not define to what extent the compilers are allowed to optimize the resulting code. This is the quality of implementation issue and an area of competition between compiler vendors. Without any further checks I can claim that it is possible for the compiler to optimize it the way you want. And without any further checks I take the risk to claim that the Ada standard does not require any conforming compiler to optimize range checks away as you described (or please throw some references) - similarly, this is the QoI issue. So - what was your point? -- Maciej Sobczak : http://www.msobczak.com/ Programming : http://www.msobczak.com/prog/