comp.lang.ada
 help / color / mirror / Atom feed
From: "Alex R. Mosteo" <devnull@mailinator.com>
Subject: Re: Containers - nontrivial element access
Date: Wed, 03 Oct 2007 01:16:10 +0200
Date: 2007-10-03T01:16:10+02:00	[thread overview]
Message-ID: <5mg1prFdasfqU1@mid.individual.net> (raw)
In-Reply-To: 1191343257.343180.80480@y42g2000hsy.googlegroups.com

Matthew Heaney wrote:

> On Oct 1, 7:52 pm, "Alex R. Mosteo" <devn...@mailinator.com> wrote:
>>
>> I don't think that's reproducible as-is with the standard containers. It
>> must be more verbose. There's no way to get a reference to the element in
>> the Ada containers (unless you want to go the 'Unrestricted_Access way
>> inside Update_Element, but that would require anyway extending the
>> standard containers), so you can have dangling cursors but no dangling
>> pointers.
> 
> If this is a vector, you can use index values.

Yep, I was just talking in general. In any case one has to go to some
lengths to get dangling cursors; in typical usage this has *very very*
rarely happened to me.

> 
> 
>> There was a recent thread (started by myself) on the amount of copying
>> involved in the use of the containers. Someone said that returning
>> accesses was deemed too unsafe and thus dropped, IIRC. I have not a
>> strong position on if dangling cursors is a great improvement over
>> dangling accesses, given what we gain/lose; in my experience a dangling
>> cursor has been always as bad as a dangling pointer, in the sense that
>> the program was erroneous beyond recovery; admittedly I have never got a
>> memory violation using the containers so post-hoc diagnostics are
>> quicker.
> 
> If you're using GNAT, then compile the container instantiations with -
> gnata, and the container will detect dangling cursors.  Try it!

Ummm, perhaps I'm confused. IIRC, the dangling cursor is detected once you
try to use it, not if the container goes out of scope or the element is
removed by other means than that cursor. Is this what you mean? I'm not
trying to imply otherwise.



  reply	other threads:[~2007-10-02 23:16 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-01 21:55 Containers - nontrivial element access Maciej Sobczak
2007-10-01 23:52 ` Alex R. Mosteo
2007-10-02 16:40   ` Matthew Heaney
2007-10-02 23:16     ` Alex R. Mosteo [this message]
2007-10-02 20:47   ` Maciej Sobczak
2007-10-02 23:23     ` Alex R. Mosteo
2007-10-02  0:39 ` Jeffrey R. Carter
2007-10-02 16:44   ` Matthew Heaney
2007-10-03  0:20     ` Jeffrey R. Carter
2007-10-03 19:40       ` Maciej Sobczak
2007-10-03 19:56         ` Matthew Heaney
2007-10-03 20:21           ` Dmitry A. Kazakov
2007-10-03 22:37             ` Matthew Heaney
2007-10-04  8:06               ` Dmitry A. Kazakov
2007-10-03 22:02         ` Jeffrey R. Carter
2007-10-04  0:16         ` Robert A Duff
2007-10-07  8:41           ` Jacob Sparre Andersen
2007-10-11 19:15             ` Robert A Duff
2007-10-14  4:59               ` Jacob Sparre Andersen
2007-10-14  7:24                 ` Dmitry A. Kazakov
2007-10-14 13:49                   ` Georg Bauhaus
2007-10-14 15:07                     ` Dmitry A. Kazakov
2007-10-02 20:50   ` Maciej Sobczak
2007-10-03  0:22     ` Jeffrey R. Carter
2007-10-03  8:26       ` Dmitry A. Kazakov
2007-10-03 18:49         ` Jeffrey R. Carter
2007-10-03 19:09           ` Matthew Heaney
2007-10-03 19:15           ` Simon Wright
2007-10-03 19:48             ` Maciej Sobczak
2007-10-03 19:58             ` Matthew Heaney
2007-10-03 19:35           ` Dmitry A. Kazakov
2007-10-02  2:34 ` Randy Brukardt
2007-10-02 16:47   ` Matthew Heaney
2007-10-02  7:23 ` Dmitry A. Kazakov
2007-10-02 16:37 ` Matthew Heaney
2007-10-02 21:02   ` Maciej Sobczak
2007-10-02 22:20     ` Matthew Heaney
2007-10-03 19:59       ` Maciej Sobczak
2007-10-03 22:55         ` Matthew Heaney
2007-10-04  0:22         ` Robert A Duff
2007-10-04 13:01         ` Georg Bauhaus
2007-10-04 14:01           ` Matthew Heaney
2007-10-04 21:58           ` Matthew Heaney
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox