http://www.boost.org/doc/libs/1_37_0/libs/iterator/doc/function_output_itera... Shows a unary function being adapted as an OutputIterator. Does Boost have something that does the opposite, i.e. takes an OutputIterator and adapts it as a unary function object? In my own code I currently have: template <typename OutputIterator> struct output_iterator_function { explicit output_iterator_function(OutputIterator i) : iter(i) { } template <typename T> void operator()(const T &v) { *iter++ = v; } OutputIterator iter; }; template <typename OutputIterator> output_iterator_function<OutputIterator> make_output_iterator_function(OutputIterator i) { return output_iterator_function<OutputIterator>(i); } If this doesn't already exist in Boost.Iterator, it seems like it would nicely complement the already existing function_output_iterator. --Michael Fawcett