On 07/19/2010 04:26 PM, Peter Alexander wrote:
On 19/07/10 10:06 PM, Steven Schveighoffer wrote:
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
Thanks Steve. That looks good to me :)
Andrei, can we convince you to add these into Phobos?
This has been discussed in the past, you may want to refer to the
discussions containing "container" in the title in this group. I was
essentially tasked by Walter with deciding, and I decided to go with a
different design than the one promoted by dcollections. This is because
I believe hierarchies are too constraining to express the multitude of
containers in existence. I opted for a design that prescribes certain
named functions for methods of specific complexity, and otherwise leaves
containers not regimented.
Andrei