>From: "Jason House" <[EMAIL PROTECTED]> > Terje Slettebų wrote: > > and given this: > > > > int main() > > { > > char board[3][3]= > > { > > {'O','X','O'}, > > {'X','X','O'}, > > {'O','O','X'} > > }; > > > > std::cout << io_format<char (&)[3]>("\n|","|\n","|") > > << io_format<char (&)[3][3]>("-------","-------","-------") > > << board << '\n'; > > } > > > > we get: > > > > ------- > > |O|X|O| > > ------- > > |X|X|O| > > ------- > > |O|O|X| > > ------- > > Hey, that's pretty cool. I'm glad to see the ability to format items > inside of a container as well.
I'm glad you like. :) Yes, it applies operator<< recursively, using overloading, and any format settings for the given type, so for the outer array, it matches the second format above, and for the inner it matches the first one. > It should handle maps and pairs > reasonably well. I think that I have the same complaints about this as > io_manip > > The saving of information to the stream means that you can affect all > future output... > > For instance, if you have a type > map<custom_object, list<string> > > > and custom_object's stream output uses io_format<list<string> >, then > you are going to run into trouble if it wants a different formatting. Right. That's a consequence of this. As you say too, I don't know any obvious alternatives, though. Regards, Terje _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost