chapter 12 exercise 12-9: reimplement output operator using ostream_iterator