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-Attributes: gid103376,gid109fba,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news4.google.com!news.glorb.com!newsfeed00.sul.t-online.de!t-online.de!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++ Subject: Re: Teaching new tricks to an old dog (C++ -->Ada) Date: Thu, 24 Mar 2005 05:23:49 +0200 Organization: FORTHnet S.A., Atthidon 4, GR-17671 Kalithea, Greece, Tel: +30 2109559000, Fax: +30 2109559333, url: http://www.forthnet.gr Message-ID: <1111634628.927041@athnrd02> References: <1110329098.642196@athnrd02> <1110361741.551255@athnrd02> <422edaec$0$26554$9b4e6d93@newsread4.arcor-online.net> <1111464133.508323@athnrd02> <423fe9df$0$11476$9b4e6d93@newsread2.arcor-online.net> <1111521825.653841@athnrd02> <424094b0$0$11481$9b4e6d93@newsread2.arcor-online.net> <1111568404.687226@athnrd02> <1111572591.296439@athnrd02> <1111574207.72969@athnrd02> <42414f88$0$9217$9b4e6d93@newsread4.arcor-online.net> <1111576802.823362@athnrd02> <1111577078.934620@athnrd02> <1111586334.958702.249050@o13g2000cwo.googlegroups.com> <1111608867.922129@athnrd02> <1111631889.495954@athnrd02> 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 1111634629 16564 193.92.150.73 (24 Mar 2005 03:23:49 GMT) X-Complaints-To: abuse@forthnet.gr NNTP-Posting-Date: Thu, 24 Mar 2005 03:23:49 +0000 (UTC) User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206) X-Accept-Language: en-us, en In-Reply-To: Cache-Post-Path: newsfd02!unknown@ppp16-adsl-51.ath.forthnet.gr Xref: g2news1.google.com comp.lang.ada:9883 comp.lang.c++:46985 Date: 2005-03-24T05:23:49+02:00 List-Id: Jim Rogers wrote: > My reading of the information at that url indicates that GMP allows > the specification of precision, but not the specification of a limited > range of valid values. Since I have had enough with this signed value range of Ada, here is a quick implementation of mine and some uses of it. I am sure one can create a better one or a container directly that supports ranges, if he devotes some time, so the question again arises, since it is possible and nothing exists, probably it is not considered useful to have such a feature in C++: #include #include #include template class range { std::vector array; T min, max; public: range(const T &mi, const T &ma):array(ma-mi+1), min(mi), max(ma) { using namespace std; if(max-min<=0) ;//throw some exception for(typename vector::size_type i=0; i=index>=min if desirable return array[index-min+1]; } operator T() { return array.size(); } }; int main() { using namespace std; range r(-100, -20); vector vec(r); vec[r[-65]]=3; } -- Ioannis Vranos http://www23.brinkster.com/noicys