// Test for partial specialization of a member function template. | |
// Origin: Jason Merrill <jason@cygnus.com> | |
template <class T> struct A { | |
template <class U> int f(U) { return 42; } | |
}; | |
template <> | |
template <class U> | |
int A<char>::f(U); | |
template <> | |
template <class U> | |
int A<double>::f(U) { return 24; } | |
int main () | |
{ | |
A<int> ai; | |
if (ai.f(0) != 42) | |
return 1; | |
A<double> ad; | |
if (ad.f(0) != 24) | |
return 1; | |
A<char> ac; | |
if (ac.f(0) != 36) | |
return 1; | |
} | |
template <> | |
template <class U> | |
int A<char>::f(U) { return 36; } |