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,7e81a70d49e1dad0 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news4.google.com!news2.google.com!proxad.net!usenet-fr.net!news.enst.fr!melchior!cuivre.fr.eu.org!melchior.frmug.org!not-for-mail From: Marius Amado Alves Newsgroups: comp.lang.ada Subject: Re: Adding functions to generic package Date: Thu, 2 Jun 2005 13:49:31 +0100 Organization: Cuivre, Argent, Or Message-ID: References: <429891d3$1@news.broadpark.no> <4298b608$1@news.broadpark.no> <42998036$1@news.broadpark.no> <429a34bc$1@news.broadpark.no> <429a3514$1@news.broadpark.no> <429b7b62$1@news.broadpark.no> NNTP-Posting-Host: lovelace.ada-france.org Mime-Version: 1.0 (Apple Message framework v622) Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Trace: melchior.cuivre.fr.eu.org 1117716631 52826 212.85.156.195 (2 Jun 2005 12:50:31 GMT) X-Complaints-To: usenet@melchior.cuivre.fr.eu.org NNTP-Posting-Date: Thu, 2 Jun 2005 12:50:31 +0000 (UTC) To: comp.lang.ada@ada-france.org Return-Path: In-Reply-To: X-Mailer: Apple Mail (2.622) X-Virus-Scanned: by amavisd-new at dcc.fc.up.pt 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:11213 Date: 2005-06-02T13:49:31+01:00 >>> I guess it must be: >>> >>> procedure Swap (Container : in out Container_Type; L,R : >>> Iterator_Type); >> >> No need. Cursors know their containers. (Marius) > > No, this is wrong. > > In Charles, iterators do *not* carry a pointer to container... > Mario is probably thinking of the Ada 2005 standard container library. > (Matthew) Yes. Sorry. > Cursor types do indeed hold a pointer to the container, in addition to > the node. However, the rule about manipulation of the container object > still applies (what a coincidence!), so the container is passed as a > parameter too (see the operation named Swap_Links). Ada.Containers has this operation for Lists and Vectors: procedure Swap (I, J : in Cursor); with semantics "If either I or J is No_Element, then Constraint_Error is propagated. If I and J designate elements in different containers, then Program_Error is propagated. Otherwise Swap exchanges the values of the elements designated by I and J." (cf. http://www.softdevelcoop.org/software/ada_containers) Is "exchanging values" not "manipulating the container?"