1 // PR c++/14032
2 
3 template <typename T> struct outer {
4   template <typename T2, typename U>
5   struct inner {
fouter::inner6     static int f() { return inner<T,int>::N; };
7   };
8 
9   template <typename U>
10   struct inner<T,U> {
11     static const int N = 1;
12   };
13 };
14 
15 int i = outer<int>::inner<double,int>::f();
16