mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-14 05:19:34 +08:00
expand
From-SVN: r34385
This commit is contained in:
parent
f9a7ae04e9
commit
7a50d89174
@ -1,17 +1,33 @@
|
||||
// Build don't link:
|
||||
// Test for partial specialization of a member function template.
|
||||
// Origin: Jason Merrill <jason@cygnus.com>
|
||||
|
||||
template <class T> struct A {
|
||||
template <class U> void f(U);
|
||||
template <class U> int f(U) { return 42; }
|
||||
};
|
||||
|
||||
template <>
|
||||
template <class U>
|
||||
void A<int>::f(U);
|
||||
int A<char>::f(U);
|
||||
|
||||
A<int> a;
|
||||
template <>
|
||||
template <class U>
|
||||
int A<double>::f(U) { return 24; }
|
||||
|
||||
void g ()
|
||||
int main ()
|
||||
{
|
||||
a.f (3);
|
||||
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; }
|
||||
|
Loading…
Reference in New Issue
Block a user