Are iterators and ranges going to co-exist?
Steven Schveighoffer
schveiguy at yahoo.com
Mon Jul 19 14:06:44 PDT 2010
On Mon, 19 Jul 2010 16:37:22 -0400, Peter Alexander
<peter.alexander.au at gmail.com> wrote:
> I've been following the D programming language for quite some time now,
> and only recently decided to dive in and start using it. My first
> impressions are that it is a very nice language (despite the library
> bugs), but one thing in particular that confused me was the lack of
> iterators, and their near complete replacement by ranges.
>
> I did notice that there is an std.iterator library, which is said to be
> "growing" in the documentation.
>
> What is the plan for this library? Will the std.algorithm start to use a
> mixture of iterators and ranges (as it should, in my opinion)?
You may want to check out cursors from dcollections. I apologize, the
online docs are still for the D1 version, but you can learn about D2
cursors here:
http://www.dsource.org/projects/dcollections/browser/branches/d2/concepts.txt#L21
Note that cursors are still ranges, but enjoy many of the benefits that
iterators are used for in STL, such as referring to single elements and
using as endpoints for slices.
I'm unsure whether Andrei will admit them into phobos. All correspondence
I have with him both private and public indicates they will not be
admitted. But they are still ranges, so they effectively can be used in
some alogrithms (though the usefulness in that capacity remains to be
seen). They should make 3-legged algorithms much easier to write, and
code that gets ranges from a container much more natural.
-Steve
More information about the Digitalmars-d
mailing list