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);
12 class bar { virtual void baz()=0; };