On 26.06.20 15:35, ag0aep6g wrote:
`isInputRange!R` fails because it has no knowledge of your free `empty` function. Without `empty`, `R` is obviously not a range.
To be clear: It's the same with `front` and `popFront`. You can't implement any range primitives as free functions.
It only works for arrays because those implementations are part of std.range.