From: Brian Drummond <brian@shapes.demon.co.uk>
Subject: Re: asynchronous task communication
Date: Tue, 8 Jan 2013 22:26:26 +0000 (UTC)
Date: 2013-01-08T22:26:26+00:00 [thread overview]
Message-ID: <kci6ei$vn7$1@dont-email.me> (raw)
In-Reply-To: kchk1u$fl7$1@dont-email.me
On Tue, 08 Jan 2013 10:12:30 -0700, Jeffrey Carter wrote:
> On 01/08/2013 05:02 AM, Brian Drummond wrote:
>>
>> And the index is a Cursor type.
>
> No. The index is a discrete type chosen by the user. Cursor is a private
> type defined by the package. Both serve to represent a "location" in the
> array.
The context was Ada.Containers, where other forms of container use Cursor
for indexing; I've been using List recently so it seemed odd that Vector
has both index and cursor - but I stand corrected, they do appear to be
separate, with overlapping functionality.
>> So, holding onto a cursor would be unsafe (i.e. no longer refer to the
>> original object) after an "insert" operation, possibly earlier in the
>> vector?
>
> ... if you insert a new component before
> the existing item at index 3, then all the components after the new
> component will shift up, and the existing item will then be at index 4.
>
> One would think that a Cursor would behave similarly.
Question answered; whether it raises PE or follows Index in losing its
place, Cursor cannot be used as a link to an object in the presence of
Insert or Remove operations.
There is quite a lot of magic already in Ada.Containers (in the sense of
making storage management easy and reliable) - that would be a bit too
much to ask. (Not fundamentally impossible, but unlikely to be efficient)
Underlying point : as Dmitry says, Vector is the wrong abstraction for
some (most?) graphs.
- Brian
next prev parent reply other threads:[~2013-01-08 22:26 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-31 0:16 asynchronous task communication Charles Hixson
2012-12-31 9:04 ` Simon Wright
2012-12-31 11:49 ` Simon Wright
2012-12-31 10:50 ` J-P. Rosen
2012-12-31 12:09 ` Georg Bauhaus
2012-12-31 18:52 ` Charles Hixson
2012-12-31 20:18 ` Shark8
2012-12-31 21:09 ` Niklas Holsti
2012-12-31 22:15 ` Randy Brukardt
2013-01-01 3:58 ` Charles Hixson
2013-01-01 4:48 ` tmoran
2013-01-01 17:59 ` Charles Hixson
2013-01-01 3:51 ` Charles Hixson
2013-01-01 9:59 ` Dmitry A. Kazakov
2013-01-01 10:38 ` Brian Drummond
2013-01-01 12:32 ` Jeffrey Carter
2013-01-01 18:21 ` Charles Hixson
2013-01-01 18:54 ` Robert A Duff
2013-01-02 7:36 ` Charles Hixson
2013-01-02 9:55 ` Dmitry A. Kazakov
2013-01-02 19:02 ` Charles Hixson
2013-01-02 20:35 ` Dmitry A. Kazakov
2013-01-03 0:20 ` Charles Hixson
2013-01-03 6:34 ` Charles Hixson
2013-01-03 8:50 ` Dmitry A. Kazakov
2013-01-03 19:01 ` Charles Hixson
2013-01-03 10:01 ` J-P. Rosen
2013-01-03 19:29 ` Charles Hixson
2013-01-04 8:17 ` J-P. Rosen
2013-01-05 4:31 ` Charles Hixson
2013-01-09 8:34 ` Stephen Leake
2013-01-03 22:27 ` Randy Brukardt
2013-01-05 5:18 ` Charles Hixson
2013-01-05 8:48 ` Niklas Holsti
2013-01-06 22:55 ` Charles Hixson
2013-01-07 0:38 ` tmoran
2013-01-07 6:07 ` Shark8
2013-01-07 10:49 ` Brian Drummond
2013-01-07 18:27 ` Jeffrey Carter
2013-01-08 12:02 ` Brian Drummond
2013-01-08 17:12 ` Jeffrey Carter
2013-01-08 18:18 ` Simon Wright
2013-01-08 20:29 ` Dmitry A. Kazakov
2013-01-08 21:01 ` Jeffrey Carter
2013-01-08 21:14 ` Simon Wright
2013-01-08 22:11 ` Randy Brukardt
2013-01-08 22:52 ` Jeffrey Carter
2013-01-08 22:26 ` Brian Drummond [this message]
2013-01-08 2:41 ` Randy Brukardt
2013-01-02 22:43 ` Niklas Holsti
2013-01-03 1:30 ` Charles Hixson
2013-01-03 12:11 ` Georg Bauhaus
2013-01-03 13:17 ` Dmitry A. Kazakov
2013-01-05 20:19 ` Charles Hixson
2013-01-07 4:01 ` Shark8
2013-01-01 19:59 ` J-P. Rosen
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox