Terje Slettebų wrote:
This example should one case where manipulators are desirable:
vector< vector<int> > v;
cout << v ;
Here, each nested vector better go on a separate line. I suggest:
cout << multiline << v;
where "multiline" manipulator causes each element of the next output
container
to go on separate line.
The above io_format<>'s are intended to be manipulators. You could get this
manipulator with:
io_format<vector<int> >("\n","","") multiline;
You could also make it so that this manipulator set the format for any
container, but in cases where you have arbitrary deep nesting of containers
(like in Peter Dimov's posting), it may be better to set the format on a
per-type basis.
I think that when more that double nesting is involed you have problems
anyway.
Incidentally, I've just made a version that does exactly this. :) I've
attached it, including a test, with this posting.
I've take a look and I like it -- quite lean and does the work. I've some
concerns, though:
1. Are "default" breaces/separators possible? I'd rather not use
io_format every time I had to output a vector.
2. Is that good idea to set brace style on vector<int> and vector<double>
separately? It would increase pword() array, and not sure if this will
benefit us much. Are nested containers the primary motivation?
- Volodya
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost