From: Terje Slettebø (tslettebo_at_[hidden])
Date: 2003-02-03 14:13:05
>From: "Vladimir Prus" <ghost_at_[hidden]>
> after having to output std::vector to stream again and again using custom
> solution, I started to wonder why we don't have a solution in boost.
> Does it makes sense to include operators<< for vectors, sets, etc?
> I was thinking about
> and so on. There are basically two approaches:
> 1. Operators use fixed format: bracked list with commas between values for
> vector, for example.
> 2. Manipulators are provided to set brackets and separators.
> I had implemented the second approach some time ago, but it turned out
> was overkill. So, 1) looks better now.
If this is done as a library, then I think it's best not to have hard-coded
brackets and separators. One might use an xalloc() value for each type to
output. For example something like:
typedef std::pair<int,char> Map;
typedef std::vector<Map> MapList;
// Fill container
std::cout << boost::io_format<Map>(",", "[", "]") <<
boost::io_format<MapList>("","","\n") << list << '\n';
This might print:
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk