Boost Users :
Subject: Re: [Boost-users] iterators must go
From: Emil Dotchevski (emildotchevski_at_[hidden])
Date: 2009-05-15 12:28:22
On Fri, May 15, 2009 at 8:15 AM, John Dlugosz <JDlugosz_at_[hidden]> wrote:
>> Date: Wed, 13 May 2009 02:18:07 -0400
>> From: Scott McMurray <me22.ca+boost_at_[hidden]>
>> Subject: Re: [Boost-users] iterators must go
>> To: boost-users_at_[hidden]
>> Content-Type: text/plain; charset=UTF-8
>> On Sun, May 10, 2009 at 09:24, Neal Becker <ndbecker2_at_[hidden]>
>> > Interesting presentation:
>> > http://www.boostcon.com/site-
>> > media/var/sphene/sphwiki/attachment/2009/05/08/iterators-must-go.pdf
>> Very persuasive, but it's careful to touch only the examples that look
>> nice. Note, for example, that every range was a whole container.
>> The three-iterators part was somewhat handwaved-over as well. Take
>> this bit of current code, for example:
>> auto i = find(c.begin(), c.end(), some_pred());
>> rotate(c.begin(), i, c.end());
>> How do you do that nicely with ranges, when he has find returning a
>> range? (Since right now, it implicitly actually returns 2 ranges.)
>> And how does insertion work? Do we still need to keep the iterators
>> around for insertion position?
>> I'd love to see the finicky bits worked out, though, since I do like
>> the idea.
>> ~ Scott
> Any place you really want a single iterator, a range of one value would
> work. For appending or streaming out, you really want the concept of an
> open-ended range.
You can shrink ranges from the front or from the back, but you can't
grow them. Andrei repeated this several times in his talk so I think
it's important. It is part of the improved safety of ranges over
The way I understand this, open-ended ranges don't exist. One way I
can think of that fits ranges principles is to use a special insertion
range, which has the elements to be inserted and a reference to a
container. The range would then call push_back on the container from
its pop_front member function.
Reverge Studios, Inc.
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net