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