1// { dg-do assemble } 2// { dg-options "-ansi -pedantic-errors -w" } 3// GROUPS passed templates 4template <class T, class U> 5void foo(U u, T t); 6 7template <class T> 8void foo(T t); 9 10template <class T> 11struct S {}; 12 13template <class T> 14void foo(const S<T>&); 15 16void bar() 17{ 18 void (*fn)(double, int) = 19 (void (*)(double, int)) &foo<int>; 20 void (*fn2)(double) = foo<double>; 21 foo<int>(3, 3.0); 22 foo<int>(S<int>()); 23} 24