import std.range; import std.array; struct X{ string s; @property front(){ return s.front; } @property void popFront(){ s.popFront; } @property bool empty(){ return s.empty; } } static assert(isInputRange!(X)); fails, though I can't for the life of me figure out why dmd 2.047
I'm almost sure this is related to bug 3294. Adding as a dependency.
Fixed 2.048, since 3294 got fixed.