This way, the output_adapter can work on simple output iterators and no longer requires random access iterators.