1// { dg-do compile }
2
3template < typename = void >
4struct X { } ;
5struct Y
6{
7  Y () ;
8} ;
9template < typename = X < > >
10struct T
11{
12  void f ()
13    {
14      f () ;
15    }
16} ;
17struct S
18{
19  S ( X < > = X < > ()) ;
20  ~S ()
21    {
22      T < > () . f () ;
23    }
24} ;
25struct Z
26{
27  S s ;
28  Y y ;
29} a ;
30
31