BidirectionalRange switching direction
Tofu Ninja via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Sep 24 17:29:20 PDT 2015
On Wednesday, 23 September 2015 at 03:26:29 UTC, John Colvin
wrote:
> 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];
> }
Ok cool, that's what I ended up doing.
More information about the Digitalmars-d-learn
mailing list