On 08/10/2016 11:47 AM, Lodovico Giaretta wrote:
On Wednesday, 10 August 2016 at 18:38:00 UTC, Ali Çehreli wrote:
RangeWrapper does not provide the InputRange interface, so the
compiler uses 'alias this' and iterates directly on the member range.

I tried making RangeWrapper an InputRange but failed. It still uses
'range'.

// Still fails with these:
    @property bool empty() {
        return range.empty;
    }

    void popFront() {
        range.popFront();
    }

I don't know how the decision process works there.

Ali

That's strange, as RangeWrapper works correctly if instantiated with any
underlying range EXCEPT std.container.Array.

A quick read reveals popFront() is implemented only for bool Arrays. That explains the issue.

I don't know whether it's an oversight.

Ali

Reply via email to