// { dg-do compile } // Origin: David Abrahams // Wolfgang Bangerth // PR c++/12170: Deducing template template parameter from nested // class template. template struct W {}; template< template class F, typename T> int foo(W< F >); template struct L { static int const value = sizeof(foo(W())); typedef T type; }; template struct Y { template struct X { typedef int type; }; typedef typename L >::type type; }; template struct Y;