The InputRange concept has three functions, example:
struct InputRange(T) {
@property bool empty();
@property T front();
void popFront();
}
In short, a way to
check if the range is empty
get the current element
move to the next element
To make our own type a InputRange, w...