1 // PR c++54485
2 
3 template<typename T>
4 class K1
5 {
6   int fn(int, int);
7   int gn(int, int);
8 };
9 
10 template<typename T>
11 int K1<T>::fn (int a, int b = 3)      // { dg-error "default arguments" }
12 {
13   return a - b;
14 }
15 
16 template<typename T>
17 int K1<T>::gn (int a = 1, int b = 3)  // { dg-error "default arguments" }
18 {
19   return a - b;
20 }
21 
22 template<typename T>
23 class K2
24 {
25   template<typename U>
26   int fn(int, int);
27   template<typename U>
28   int gn(int, int);
29 };
30 
31 template<typename T>
32 template<typename U>
33 int K2<T>::fn (int a, int b = 3)  // { dg-error "default arguments" }
34 {
35   return a - b;
36 }
37 
38 template<typename T>
39 template<typename U>
40 int K2<T>::gn (int a = 1, int b = 3)  // { dg-error "default arguments" }
41 {
42   return a - b;
43 }
44