
To implement part of the serialization library, I defined composable iterators that could be composed in any sequence. This permitted me to a small number of iterators that could be composed at compile time to generate a much larger number of possible transforming iterators. I called these "Dataflow" iterators. They are used for thinks like converting strings from wide char to base64 and things like that. I've never been able to convince anyone else of the merit of the approach - but hope springs eternal. Robert Ramey Sean Parent wrote:
I don't have enough time to delve deeply into this thread but I thought I'd make a few passing comments.
Adobe has a fairly major string class problem (we joke that every project must have it's own string class - which is nearly true). There isn't such thing as a single type of string - there are _many_ purposes and you need to be able to handle things like language and style runs and large, large blocks of text with efficient edits, UI substations (which are aware of things like split negation and masculine/feminine forms), language based ordering, different encodings...
We need another string class like a hole in the head.
What we do need - are good standard algorithms which can be applied to any string class.
I believe this is doable with the current iterator interface.