Boost logo

Boost :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-02-04 05:23:40


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


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk