1// PR c++/34950 2 3template <class T = int> struct policy { 4 typedef int unnecessary; 5}; 6 7template <class Policy> struct A { 8 typedef int type; 9 typedef typename Policy::unnecessary unused; 10}; 11 12template <class T> struct S { 13 typedef int type; 14 typedef typename A<T>::type unused; 15}; 16 17template <class, class T> typename S<T>::type foo(); 18template <class> S<policy<> >::type foo(); 19 20template <typename T> int def(T); 21const int i = def(foo<int>); 22