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: Sat, 11 Mar 2017 15:18:08 +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:27839 Date: 2017-03-11T15:18:08+01:00 List-Id: On 2017-03-11 12:21, Simon Wright wrote: > "Dmitry A. Kazakov" writes: > >> This looks like a clear case for reference counted objects. A handle >> to Person to be put into containers (for search) and into other >> objects for referencing. No problem with limited types. Weak handles >> are for backward referencing and so on. > > Does that mean reference-counted _handles_? Objects are reference-counted. Handles are not. > If you have multiple handles > to a particular Person object, which gets deleted, you'd want all those > handles to be invalidated. It is in essence the difference between weak and strong references. If you want a reference invalidated when the object vanishes that would be a weak reference. In order to access object through weak reference you first elevate it to a strong one. You drop the strong reference once you used the object. The semantics of "object deleted" is in question. Usually it is merely throwing it out of some list (container) and thus decreasing object's reference count. The object stays alive until nobody else uses it = nobody holds a strong reference to it. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de