In the course of my work I had occasion to make a small family of iterator adaptors for escaping/unescaping ascii text, and things like that. I made the constuction interface so it could use another iterator adaptor as a "source" thereby permiting me to compose iterators in any sequence (sort of like unix pipes). If there is any interest I will post this.
Please do. I, or you, could see if the marg_ostreambuf code could be modified to do what you want.
Subsequently, I had the need to output unicode as UTF-8 which is char based rather than wchar_t based. I used the code in the vault by Ron Garcia. This implemented code_cvt facet to do the transformation.
I should look at the Garcia code, meanwhile...
It was irksome to me that that the interface for code_cvt facet was not mapable to my iterator adaptor set - or is it. Now that I have invest the effort to understand stream/streambuf/facet/local/char vs wchar_t/ charsets/etc. I wonder if one can't make a code_cvt facet that would be constructed with an arbitray iterator adaptor.
I've created files/col_io/pipe.cpp with output in pipe.exe.output. It demonstrates that two marg_ostreams can be composed. The 1st one changes the margin and at some time puts "xxx" in that margin. The 2nd just puts "yyy" in the margin.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost