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!proxad.net!usenet-fr.net!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: Wed, 27 Apr 2005 09:21:45 +0200 Organization: Cuivre, Argent, Or Message-ID: References: <426e4c2b$0$7515$9b4e6d93@newsread2.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 1114586523 14828 212.85.156.195 (27 Apr 2005 07:22:03 GMT) X-Complaints-To: usenet@melchior.cuivre.fr.eu.org NNTP-Posting-Date: Wed, 27 Apr 2005 07:22:03 +0000 (UTC) Cc: comp.lang.ada@ada-france.org To: Jeffrey Carter Return-Path: In-Reply-To: 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:10746 Date: 2005-04-27T09:21:45+02:00 Hi Jeffrey, > IMNSHO, a unbounded-array abstraction doesn't need such operations, nor > cursors. One should use it in a manner very similar to an array: > > for I in Index'First .. Last (Container) loop > -- operate on Get (Container, I) > end loop; that isn't the only way of using an array. The example of recursive algorithms taking subarrays was already mentioned. With the spec you included, it looks like you would have to use the Slice function to get a subarray - this means returning a copy on the stack, which is unacceptable if the array is long, and also problematic (=maybe very costly) if it contains controlled elements. Also, if you want to use a low-level or legacy routine that operates on an array, then you have a similar need to copy. Ciao, D.