blob: 10d59e157343ac3f937215f9174ea0a374f76269 [file] [log] [blame]
// PR c++/34950
template <class T = int> struct policy {
typedef int unnecessary;
};
template <class Policy> struct A {
typedef int type;
typedef typename Policy::unnecessary unused;
};
template <class T> struct S {
typedef int type;
typedef typename A<T>::type unused;
};
template <class, class T> typename S<T>::type foo();
template <class> S<policy<> >::type foo();
template <typename T> int def(T);
const int i = def(foo<int>);