1 // PR c++/58022 2 3 template <class T> struct A { }; 4 template <class T> A<T> & operator<< (A<T>&, T); 5 template <class T> class foo; 6 template <class T> A<char> & operator<<(A<char>& o, const foo<T>& l); 7 template <class T> class foo { 8 friend A<char>& operator<< <T> (A<char>& o, const foo<T>& l); 9 }; 10 class bar; 11 foo<bar> fb; 12 class bar { virtual void baz()=0; }; 13