// { dg-do link } // GROUPS passed templates membertemplates extern "C" int printf(const char*, ...); template struct S { template void operator+(T); }; template template void S::operator+(T) { printf("Hello, world.\n"); } int main() { S s; s + 3; s + s; s.operator+("Hi"); S > s2; s2 + 3; s2 + s; s2.operator+("Hi"); }