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=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Getting the index for an element in mutually referencing containers Date: Sun, 12 Mar 2017 12:55:05 +0100 Organization: Aioe.org NNTP Server Message-ID: References: <86o9xa36oq.fsf@gaheris.avalon.lan> <86k27xpikd.fsf@gaheris.avalon.lan> <86wpbxneuz.fsf@gaheris.avalon.lan> NNTP-Posting-Host: BYuA7L7MRjuLLjcoGHOBxw.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:27855 Date: 2017-03-12T12:55:05+01:00 List-Id: On 2017-03-12 12:30, Simon Wright wrote: > "Dmitry A. Kazakov" writes: > >> On 2017-03-11 22:46, Simon Wright wrote: > >>> Basically, I (Simon, now) am having trouble thinking of an application >>> where reference counting would be an appropriate solution. >> >> As I said, in practice it is all cases when you would have a container >> of mutable elements. > > I had some trouble understanding your point the first time, and skipped > over it (sorry). > > What's the opposite of "mutable"? constant? because, if so, why wouldn't > I use Update_Element? Yes, But it is almost never element update. Usually what you want is to call some mutable operations on the element. The language does not offer user-defined by-reference or copy-out-copy-in methods to element access. Thus it becomes an access type which opens the whole can of worms. Reference counting is merely a method to deal with access types and to prevent excessive copying, e.g. when inserting elements. > (aside from it being very clumsy; more likely to > use a reference, Person (P).Health := Unwell; ) An access type, you mean. References are only for built-in containers: records and arrays. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de