1// { dg-do assemble  }
2
3class mystream;
4
5template <class T> class a;
6
7template <class T> mystream& operator>>( mystream& s, a<T>& thea );
8
9template <class T> class a {
10public:
11	friend mystream& operator>> <>( mystream&, a<T>& thea );
12private:
13	T amember;
14};
15
16template<> mystream& operator>> <int>( mystream& s, a<int>& thea );
17
18template class a<int>;
19
20template<> mystream& operator>> <int>( mystream& s, a<int>& thea )
21{
22	thea.amember = 0;
23	return s;
24}
25