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,703c4f68db81387d X-Google-Thread: 109fba,703c4f68db81387d X-Google-Thread: 115aec,703c4f68db81387d X-Google-Thread: f43e6,703c4f68db81387d X-Google-Attributes: gid103376,gid109fba,gid115aec,gidf43e6,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news4.google.com!news.glorb.com!feeder.enertel.nl!nntpfeed-01.ops.asmr-01.energis-idc.net!feeder.xsnews.nl!feeder.news-service.com!80.239.136.19.MISMATCH!tsicnews.teliasonera.com!news.otenet.gr!news.grnet.gr!newsfd02.forthnet.gr!not-for-mail From: Ioannis Vranos Newsgroups: comp.lang.ada,comp.lang.c++,comp.realtime,comp.software-eng Subject: Re: Teaching new tricks to an old dog (C++ -->Ada) Date: Tue, 22 Mar 2005 22:17:24 +0200 Organization: FORTHnet S.A., Atthidon 4, GR-17671 Kalithea, Greece, Tel: +30 2109559000, Fax: +30 2109559333, url: http://www.forthnet.gr Message-ID: <1111522653.164049@athnrd02> References: <4229bad9$0$1019$afc38c87@news.optusnet.com.au> <1110032222.447846.167060@g14g2000cwa.googlegroups.com> <871xau9nlh.fsf@insalien.org> <3SjWd.103128$Vf.3969241@news000.worldonline.dk> <87r7iu85lf.fsf@insalien.org> <1110052142.832650@athnrd02> <1110284070.410136.205090@o13g2000cwo.googlegroups.com> <395uqaF5rhu2mU1@individual.net> <1110329098.642196@athnrd02> <1110361741.551255@athnrd02> <422edaec$0$26554$9b4e6d93@newsread4.arcor-online.net> <1111464133.508323@athnrd02> <1111508368.393411.6450@z14g2000cwz.googlegroups.com> NNTP-Posting-Host: athnrd02.forthnet.gr Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: athprx02.forthnet.gr 1111522653 26263 193.92.150.73 (22 Mar 2005 20:17:33 GMT) X-Complaints-To: abuse@forthnet.gr NNTP-Posting-Date: Tue, 22 Mar 2005 20:17:33 +0000 (UTC) User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206) X-Accept-Language: en-us, en In-Reply-To: <1111508368.393411.6450@z14g2000cwz.googlegroups.com> Cache-Post-Path: newsfd02!unknown@ppp14-adsl-66.ath.forthnet.gr Xref: g2news1.google.com comp.lang.ada:9754 comp.lang.c++:46725 comp.realtime:1587 comp.software-eng:5189 Date: 2005-03-22T22:17:24+02:00 List-Id: fabio de francesco wrote: > Ciao, > > Ioannis wrote a C++ program that in his intentions would had operate > like the Ada code that was provided as an example of language > expressiveness. > > Unfortunatelly that C++ code doesn't resembles the Ada one. Have a > closer look at what Richard wrote: > > type Index is range -800_000..12_000_000; > type Decimal_Fraction is digits 12 range -473.0 .. 2_000.0; > type Vector is array (Index range <>) of Decimal_Fraction; > > V1 : Vector ( -47..600); -- note the negative index range > V2 : Vector (-1.. 10); -- also a negative index range > V3 : Vector (42..451); -- index starts higher than zero; It isn't difficult to implement a vector that accepts signed ranges too *with* range-checking, the default ones begin from 0 because this is the C++ natural feel. vector::at() performs range checked access. #include #include #include int main() try { std::vector vec(10); vec.at(12)=4; } catch(std::exception &e) { std::cerr<temp invalid vector subscript C:\c> In other words it does not make much sense to have signed indexes. Otherwise it is easy and possible. -- Ioannis Vranos http://www23.brinkster.com/noicys