1 // { dg-do compile }
2 
3 // Origin: lorgon1@yahoo.com
4 
5 // PR c++/11154: Multi-level template argument in partial ordering of
6 // class template
7 
8 template <class A> struct Outer {
9    template <class T, class U = void, class V = void> struct Foo {};
10    template <class T, class U> struct Foo<T,U,void> {};
11    template <class T> struct Foo<T,void,void> {};
12 };
13 
14 Outer<int>::Foo<int,void,void> f;
15