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