
Or if it should be possible?
It's possible, yes. But that means the splitting would be done lazily as you iterate the returned range. I have the basic utilities needed to adapt all StringAlgo algorithms to behave that way (well, I have a framework for lazy segmentation and transformation or ranges) if there is interest.
I wouldn't find it ok for split to return a vector<string> since I like to be kept in control of how I store my elements, and there is no control without taking the container as an argument or using the method I just mentioned.
There are more changes that can be made to the interface in view of C++0x, especially move-semantics. I suggest that we create that interface in a new namespace e.g. boost::cpp0x::algorithm. -Thorsten