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=-2.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, MAILING_LIST_MULTI autolearn=unavailable autolearn_force=no version=3.4.4 X-Google-Thread: 103376,1fa85f3df5841ae1 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!news.tele.dk!news.tele.dk!small.news.tele.dk!proxad.net!freenix!news.enst.fr!melchior!cuivre.fr.eu.org!melchior.frmug.org!not-for-mail From: Duncan Sands Newsgroups: comp.lang.ada Subject: Re: Ada.Containers.Vectors - querying multiple elements Date: Tue, 26 Apr 2005 22:34:07 +0200 Organization: Cuivre, Argent, Or Message-ID: References: <426e4c2b$0$7515$9b4e6d93@newsread2.arcor-online.net> <1114530273.185327.319710@z14g2000cwz.googlegroups.com> <1114531544.32583.142.camel@localhost.localdomain> <426E72C3.9070108@on2.com> <426e90ef$0$10506$9b4e6d93@newsread4.arcor-online.net> NNTP-Posting-Host: lovelace.ada-france.org Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Trace: melchior.cuivre.fr.eu.org 1114547666 11171 212.85.156.195 (26 Apr 2005 20:34:26 GMT) X-Complaints-To: usenet@melchior.cuivre.fr.eu.org NNTP-Posting-Date: Tue, 26 Apr 2005 20:34:26 +0000 (UTC) Cc: comp.lang.ada@ada-france.org To: Georg Bauhaus Return-Path: In-Reply-To: <426e90ef$0$10506$9b4e6d93@newsread4.arcor-online.net> X-Mailer: Evolution 2.2.1.1 X-Virus-Scanned: by amavisd-new-20030616-p10 (Debian) at ada-france.org X-BeenThere: comp.lang.ada@ada-france.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Gateway to the comp.lang.ada Usenet newsgroup" List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Xref: g2news1.google.com comp.lang.ada:10734 Date: 2005-04-26T22:34:07+02:00 > > But (IMHO) grabbing a "slice" of a > > vector is a very normal thing to want to do. Why not support it as > > efficiently as possible? > > I'm curious. Where is slicing a dynamically sized vector > done frequently? Whenever you want to use legacy code that works on arrays? It's true I have no statistics - I would like to hear some. By the way, I would be perfectly satisfied if Matthew said: "based on our code survey, hardly anybody needs this, so we didn't include it". However his arguments don't seem to be of this kind. Anyway, here's the example that started this whole thing: I have a package that used GNAT.Dynamic_Tables (GDT). These tables are quite efficient and easy to manipulate, but they do have some problems. For example, if your table element type has some kind of automatic initialization (eg: it is a pointer => initialized to null) then that initialization won't happen. This can cause strange bugs if forgotten. I ran into just such a bug this morning, which made me do what I had long intended to do: ditch GDT. Rather than writing my own abstraction to replace it, I decided to look into the AI302 containers. For the case in hand, Ada.Containers.Vectors seemed perfect - and it was perfect (thanks Matthew!). The only place where I had any problem at all was in using one of our existing debugging routines which turns an array into a formatted output string. For this it would have been nice to be able to access the vector as an array. Since you can't do that directly, I wrote a new debugging routine which takes a vector as parameter - so there was no real problem there either. However it did strike me that the ability to view parts of the vector as arrays would be generally useful, and thus my original email. All the best, Duncan.