// { dg-do link } | |
// GROUPS passed templates membertemplates | |
extern "C" int printf(const char*, ...); | |
struct S | |
{ | |
template <class T, class U> | |
void foo(T t, U u); | |
template <class U> | |
void foo(char*, U); | |
void foo(int i); | |
}; | |
template <class T, class U> | |
void S::foo(T t, U u) | |
{ | |
printf ("T,U version\n"); | |
} | |
template <class U> | |
void S::foo(char*, U u) | |
{ | |
printf ("char*,U version\n"); | |
} | |
void S::foo(int i) | |
{ | |
printf ("int version\n"); | |
} | |
int main() | |
{ | |
S s; | |
s.foo(3); | |
s.foo(3, 3); | |
s.foo("abc", s); | |
} | |