http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56895
--- Comment #13 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2013-04-10 20:04:03 UTC --- struct B { void operator<< (B& ()); void operator<< (int); }; B b; struct A { bool foo (); A bar (); }; A *a; template <class> void fn1 () { b << (a->bar().foo() ? : 0); }