http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58713
--- Comment #3 from Daniel Krügler <daniel.kruegler at googlemail dot com> --- (In reply to Jonathan Wakely from comment #1) > I've tried to improve it in the past, but I think there's no easy way to do > it. A possible fix might be to change the Standard ;-) Despite the smiley I seriously consider to make the proposal/open an issue that the "all-eating" signature template <class charT, class traits, class T> basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>&& os, const T& x); should be constrained and should not participate in overload resolution unless the expression os << x would be well-formed (similar for the corresponding extractor). My current guess is that this would also improve the diagnostics in this case, is that right?