http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52114
--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-02-04 22:53:11 UTC --- (In reply to comment #5) > (In reply to comment #2) > > Yesterday I was wondering: is there something in C++11 saying explicitly > > that > > these tricks are allowed, > In N3242, 14.8.2/{7,8} The question is not about the language rules, we know it works. The question is whether modifying the signature of the function is allowed. It would change the return type if called for a type that overloads operator<< with a return type that is not ostream&