1// { dg-do assemble  }
2// { dg-options "-std=gnu++98" }
3
4template <class T>
5struct C {
6  template <class U>
7  void f(U); // OK
8
9  template <class V = int>
10  struct I {}; // OK
11
12  template <class W = int>
13  void h(W); // { dg-error "" } default argument
14
15  template <class Y>
16  void k(Y);
17};
18
19template <class T>
20template <class U = double>
21void C<T>::f(U) {} // { dg-error "" } default argument
22
23template <class X = void*>
24void g(X); // { dg-error "" } default argument
25
26template <class T = double>
27template <class Y>
28void C<T>::k(Y) {} // { dg-error "" } default argument
29