// Build don't run:
// GROUPS passed templates membertemplates
extern "C" int printf(const char*, ...);

template <class U>
struct S {
  template <class T>
  void operator+(T);
};

template <class U>
template <class T>
void S<U>::operator+(T)
{
  printf("Hello, world.\n");
}


int main()
{
  S<int> s;
  s + 3;
  s + s;
  s.operator+("Hi");

  S<S<int> > s2;
  s2 + 3;
  s2 + s;
  s2.operator+("Hi");
}
