// Build don't run:
// GROUPS passed templates
class ostream {};

template <class T>
class S;

template <class T>
void operator<<(ostream&, S<T>) {}

template <class T>
class S
{
  friend void operator<<<>(ostream&, const S<T>);
};


int main()
{
  ostream o;

  o << S<int>();
}
