1 // PR c++/30044
2 
3 template <typename T1, typename T2, template <T2> class Comp, class Result = Comp<1> >
4 struct sort { };
5 
6 
7 template <typename Type, template <Type, Type> class Comp, class Result = Comp<1, 2> >
8 struct sort2 { };
9 
10 template <typename Type, template <int, Type> class Comp, class Result = Comp<1, 2> >
11 struct sort3 { };
12 
13 template <template <typename T1, typename T2, template <T2> class Comp, class Result = Comp<1> > class Foo>
14 struct sort4 { };
15