// { dg-do assemble } class mystream; template <class T> class a; template <class T> mystream& operator>>( mystream& s, a<T>& thea ); template <class T> class a { public: friend mystream& operator>> <>( mystream&, a<T>& thea ); private: T amember; }; template<> mystream& operator>> <int>( mystream& s, a<int>& thea ); template class a<int>; template<> mystream& operator>> <int>( mystream& s, a<int>& thea ) { thea.amember = 0; return s; }