1// { dg-do run  }
2template< int i > struct T :
3public T< i-1 >
4{
5};
6
7template<> struct T< 0 >
8{
9};
10
11template< class F > struct T1 :
12public T< F::dim >
13{
14};
15
16template< int i > struct S
17{
18  enum { dim = i } ;
19};
20
21int main()
22{
23  T1< S< 4 > > t ;
24  return( 0 ) ;
25}
26
27