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.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no 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!news1.google.com!newsread.com!news-xfer.newsread.com!news-feed01.roc.ny.frontiernet.net!nntp.frontiernet.net!newscon06.news.prodigy.com!prodigy.net!border1.nntp.dca.giganews.com!nntp.giganews.com!newshosting.com!nx02.iad01.newshosting.com!newsfeed.icl.net!newsfeed.fjserv.net!news.tele.dk!news.tele.dk!small.news.tele.dk!feeder.news-service.com!post.news-service.com!news1.surfino.com!not-for-mail Message-ID: <11960038.vxKLxPro5N@linux1.krischik.com> From: Martin Krischik Subject: Re: [OT] Re: Teaching new tricks to an old dog (C++ -->Ada) Newsgroups: comp.lang.ada,comp.lang.c++,comp.realtime,comp.software-eng Reply-To: martin@krischik.com Date: Sun, 13 Mar 2005 18:04:51 +0100 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> <42309456$1@news.broadpark.no> <1110569032.207770@athnrd02> <1110607809.837000@athnrd02> <1110608948.651588@athnrd02> <1110609321.686344@athnrd02> <1136ao15lb0go9c@corp.supernews.com> <1531922.sRsIxUZLL9@linux1.krischik.com> <1110655701.196383@athnrd02> <3553957.uzIDMp7DQb@linux1.krischik.com> <1110728735.107616@athnrd02> Organization: None User-Agent: KNode/0.8.0 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit X-Complaints-To: abuse@surfino.com NNTP-Posting-Host: 83.169.175.19 (83.169.175.19) NNTP-Posting-Date: Sun, 13 Mar 2005 19:00:15 +0100 X-Trace: e5b6842347faff60c0ab602855 Xref: g2news1.google.com comp.lang.ada:9323 comp.lang.c++:45436 comp.realtime:1424 comp.software-eng:4985 Date: 2005-03-13T18:04:51+01:00 List-Id: Ioannis Vranos wrote: > Martin Krischik wrote: > >>>C:\c>g++ temp.cpp -o temp.exe >>>temp.cpp: In function `int main()': >>>temp.cpp:7: error: invalid conversion from `int' to `main()::four_val' >> >> >> True - C++ won't convert int to enum either without a static_cast. You >> know what I realy miss in C++: dynamic_cast for discreed number: >> >> long X = f(); >> short Y = dynamic_cast (X); >> >> with a throw range_error when X is to large for Y. >> >> Yes - I have a template for that. But a template need two parameters >> and won't optimize as well as a build in function. >> And with -W3 you need a lot of specialized versions to avoid all sorts of >> "conditional ist constant" warnings. > I am not convinced yet this integer range topic is that a big issue. The JPEC viruses work in integer range overruns - and that is an issue since a virus inside an JPEC picture is nasty. Every Web-Page has dozends of JPEC's - no web browser would consider a JPEC a security risc. > One > can easily write his own test routine (function, template), if the > default provided assert() doesn't do the job. But assert() only work if the programmer won't forget to insert one. And the programmers for libjpec for Linux as well as the Microsoft employees which did a similar lib for Windows forgot. Not one pogrammer forgot: both *teams* forgot. Not matter if OpenSource team or comertial team - both forgot to check the integer range inside a JPEC picture. For this I go for the template version - and I do indeed have a template called Ada::Range for C++. And this template can check any range (i.E. typedef Ada::Range Day_Of_Month;) and not only short, long overruns. Very helpfull indeed. And yes, I have a template called numeric_cast as well - just build in would be better. Martin -- mailto://krischik@users.sourceforge.net Ada programming at: http://ada.krischik.com