BidirectionalRange switching direction
John Colvin via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Sep 22 20:26:27 PDT 2015
On Wednesday, 23 September 2015 at 02:10:22 UTC, Tofu Ninja wrote:
> Trying to implement a bi directional range and it is slightly
> unclear what the semantics are supposed to be and just wanted
> some clarification.
>
> Are bidirectional ranges supposed to be able to support
> switching direction mid iteration? Like if I do popFront
> popFront popBack should that be equal to just a single
> popFront? Or once you start on a direction should switching be
> considered an error? Or is popFront and popBack supposed to
> consume from both ends of the range and the range is empty when
> they meet?
>
> -tofu
The last one. E.g. for arrays (except narrow strings... ugh)
auto popFront(T)(ref T[] a)
{
a = a[1 .. $];
}
auto popBack(T)(ref T[] a)
{
a = a[0 .. $-1];
}
More information about the Digitalmars-d-learn
mailing list