OSDN Git Service

fcf4ecb904dd157c004c670a99856da37105aee2
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / template / spec15.C
1 // { dg-do compile }
2 // Contributed by Wolfgang Bangerth <bangerth at ticam dot utexas dot edu>
3 // PR c++/509: Make sure specializations of member templates match correctly
4 //  between template and non-template overloads.
5
6 template <class T>
7 struct A {
8   template <class U> void f (U);
9   void f2 (int);
10
11   template <class U> void h (U);
12   void h (long);
13 };
14
15 template <>
16 struct A<float> {
17   template <class U> void g (U);
18   void g2 (float);
19 };
20
21 template <> void A<int>::f (int);                    // { dg-error "" }
22 template <> template <> void A<int>::f (int);
23
24 template <> void A<int>::f2 (int);
25 template <> template <> void A<int>::f2 (int);       // { dg-error "" }
26
27 template <> void A<float>::g (float);
28 template <> template <> void A<float>::g(float);     // { dg-error "" }
29
30 template <> void A<float>::g2 (float);               // { dg-error "" }
31 template <> template <> void A<float>::g2(float);    // { dg-error "" }
32
33 template <> void A<long>::h (long);
34 template <> template <> void A<long>::h(long);