On 4/16/18 3:10 PM, Johannes Loher wrote:
Is there a way to do this? Here is a naive implementation:
https://run.dlang.io/is/JKvL80 .

It does not pass `isInputRange` (I think, because the free functions are
not visible in the scope of `isInputRange`).

You are correct, it's not possible.

Trying to iterate over it with a foreach loop results in a compile error:
Error: invalid foreach aggregate NoRange(0, 0).this(5), define
opApply(), range primitives, or use .tupleof

The compiler actually looks to see if it has front as a member.

If it has that one function, the foreach is attempted.

https://run.dlang.io/is/Yzn3ra

But this is an implementation detail. It may not be valid in future versions of the compiler. Note, I had to add a ref to your popFront, or it's an infinite loop :)

-Steve

Reply via email to