Trust Eric Niebler to deliver the goods -- when it comes to insightful discussion, cool code, and shameless puns:
by Eric Niebler
From the article:
The solution to
istream_iterator's woes will be to replace it with
istream_range. Put simply, if we’re reading strings from a stream, the string needs to live somewhere. The iterator seemed like the logical place when we were all thinking strictly in terms of iterators. But with ranges, we now have a much better place to put it: in the range object.