From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Getting the index for an element in mutually referencing containers
Date: Tue, 14 Mar 2017 09:25:21 +0100
Date: 2017-03-14T09:25:21+01:00 [thread overview]
Message-ID: <oa89dg$14tb$1@gioia.aioe.org> (raw)
In-Reply-To: ly1su0bvyj.fsf@pushface.org
On 14/03/2017 00:25, Simon Wright wrote:
> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
>
>> On 2017-03-12 17:44, Simon Wright wrote:
>>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
>>>
>>>> On 2017-03-12 12:30, Simon Wright wrote:
>>>>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> 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.
>>>
>>> with Ada.Containers.Vectors;
>>> package Mutable_Elements is
>>> type Element is record
>>
>> [...]
>>
>> Your example uses access type in Reference_Type which was the point.
>
> There may be pointers under the hood,
Under a straw hat with huge holes meant for ventilation alas exposing
ugly nasty lack of hair and warts. Pointers are right in the public part
of Ada.Containers.Vectors.
Even if Reference_Type were an opaque type with no visible access
discriminant, it would still be a pointer in its semantics with all
strings attached. Thus if it must be there [*], it must better be a
smart pointer, e.g. to a reference-counted object.
BTW, reference-counted design gives means to resolve problems with
at-cursor object deletion and aliased updates in one or another manner.
------------------------
* There should be no helper types needed to access container elements
"in place".
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2017-03-14 8:25 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-09 13:45 Getting the index for an element in mutually referencing containers Mart van de Wege
2017-03-09 15:25 ` Egil H H
2017-03-09 15:45 ` Mart van de Wege
2017-03-09 16:02 ` Mart van de Wege
2017-03-09 16:11 ` Egil H H
[not found] ` <ly7f3xedp4.fsf@pushface.org>
[not found] ` <86k27xpikd.fsf@gaheris.avalon.lan>
[not found] ` <lywpbxc9my.fsf@pushface.org>
[not found] ` <86wpbxneuz.fsf@gaheris.avalon.lan>
[not found] ` <o9vcbp$t0t$1@franka.jacob-sparre.dk>
2017-03-11 6:45 ` Mart van de Wege
2017-03-11 8:40 ` Simon Wright
2017-03-11 8:58 ` Dmitry A. Kazakov
2017-03-11 11:21 ` Simon Wright
2017-03-11 14:18 ` Dmitry A. Kazakov
2017-03-11 20:05 ` Simon Wright
2017-03-11 20:52 ` Dmitry A. Kazakov
2017-03-11 21:46 ` Simon Wright
2017-03-11 22:37 ` Niklas Holsti
2017-03-12 8:22 ` Simon Wright
2017-03-12 9:38 ` G.B.
2017-03-12 11:21 ` Simon Wright
2017-03-13 10:29 ` Alejandro R. Mosteo
2017-03-12 8:20 ` Dmitry A. Kazakov
2017-03-12 11:30 ` Simon Wright
2017-03-12 11:55 ` Dmitry A. Kazakov
2017-03-12 16:44 ` Simon Wright
2017-03-12 17:42 ` Dmitry A. Kazakov
2017-03-13 19:55 ` Randy Brukardt
2017-03-13 20:53 ` Dmitry A. Kazakov
2017-03-14 20:40 ` Randy Brukardt
2017-03-15 8:44 ` Dmitry A. Kazakov
2017-03-15 20:12 ` Randy Brukardt
2017-03-16 2:59 ` Paul Rubin
2017-03-16 9:04 ` Dmitry A. Kazakov
2017-03-13 23:25 ` Simon Wright
2017-03-14 8:25 ` Dmitry A. Kazakov [this message]
2017-03-12 1:36 ` Randy Brukardt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox