comp.lang.ada
 help / color / mirror / Atom feed
From: "Mark Lundquist" <mlundquist2@attbi.com>
Subject: Re: List container strawman 1.3
Date: Wed, 05 Dec 2001 21:22:14 GMT
Date: 2001-12-05T21:22:14+00:00	[thread overview]
Message-ID: <aewP7.2149$dp6.152302@rwcrnsc54> (raw)
In-Reply-To: %7sP7.49836$xS6.82296@www.newsranger.com


"Ted Dennison" <dennison@telepath.com> wrote in message
news:%7sP7.49836$xS6.82296@www.newsranger.com...
> In article <3C0E1FA1.45A38A75@brighton.ac.uk>, John English says...
> >
> >Why does the iterator type need to be controlled? What's your mental
> >model of what an iterator consists of? Mine generally says that an
>
> An iterator doesn't but a *safe* iterator does (as the list needs to know
when
> its iterators go away).

Ted, why does a list need to "know" when its iterators go away?

Did you mean to say that safe iterator needs to know when its list has gone
away?

If so, a more lightweight approach is to use an access discriminant denoting
the list, e.g.:

    type Iterator (My_List : access List) is limited record
        My_Item : Item_Ptr;
    end record;

Then it is simply impossible for an Iterator to outlive its list!  The lack
of assignment is easily overcome:

    procedure Set (This : in out Iterator; To : Iterator) is
    begin
        This.My_Item := To.My_Item;
    end Set;

since composing ":=" is probably not an issue for iterators (i.e. the
ability to assign composite types having Iterator components).

Best,
Mark






  reply	other threads:[~2001-12-05 21:22 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-12-05  0:08 List container strawman 1.3 Ted Dennison
2001-12-05  0:26 ` Ted Dennison
2001-12-05  1:31   ` Vincent Marciante
2001-12-05  8:35   ` Jean-Marc Bourguet
2001-12-05 15:02     ` Ted Dennison
2001-12-05 13:22   ` John English
2001-12-05 16:42     ` Ted Dennison
2001-12-05 21:22       ` Mark Lundquist [this message]
2001-12-05 21:38         ` Mark Lundquist
2001-12-05 22:42         ` Ted Dennison
2001-12-05 23:59           ` Mark Lundquist
2001-12-06 14:50             ` Iterator approach (was: List container strawman 1.3) Ted Dennison
2001-12-06 16:19               ` Ted Dennison
2001-12-06 17:41               ` Mark Lundquist
2001-12-06 17:57                 ` Preben Randhol
2001-12-07 16:19                 ` Ted Dennison
2001-12-06 17:47           ` List container strawman 1.3 Darren New
2001-12-07 16:00             ` Ted Dennison
2001-12-07 17:18               ` Darren New
2001-12-09 14:04                 ` Mark Lundquist
2001-12-05 16:44     ` Simon Wright
2001-12-05  2:57 ` Jeffrey Carter
2001-12-05  3:45   ` Ted Dennison
2001-12-05  6:01     ` Jeffrey Carter
2001-12-05 13:17 ` John English
2001-12-05 15:46   ` Ted Dennison
2001-12-05 18:03     ` Georg Bauhaus
2001-12-05 18:30       ` Ted Dennison
2001-12-06 13:56         ` Georg Bauhaus
2001-12-06 14:59           ` Ted Dennison
2001-12-06  0:18       ` Jeffrey Carter
2001-12-06 13:52         ` Georg Bauhaus
2001-12-06 16:56           ` Jeffrey Carter
2001-12-06 19:33             ` Georg Bauhaus
2001-12-07 16:22               ` Ted Dennison
2001-12-05 16:53   ` Ted Dennison
2001-12-05 17:09   ` Larry Kilgallen
2001-12-06 23:07 ` Nick Roberts
replies disabled

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