// { dg-do link } // GROUPS passed templates membertemplates extern "C" int printf(const char*, ...); struct S { template S(U u, int i) {} template T foo(T t) { printf("Hello, world.\n"); return t; } }; int main() { S s(3, 4); int i = s.foo(3); s.foo("hello"); s.foo(s); S s2("hello", 5); }