I'm searching the docs for something similar to: copy(someInputRange, firstOutputRange, secondOutputRange, ....); I know how to write it by hand, but I'm suspecting that something like this is already in phobos. And secondly, is there some function that gives me a forward range to some input range?