1 // { dg-do compile { target c++11 } } 2 template<typename T1, typename T2> 3 struct pair {}; 4 5 template<typename... Args> 6 struct tuple { 7 static const int value = 0; 8 }; 9 10 template<> 11 struct tuple<pair<int, float> > { }; 12 13 template<typename... Outer> 14 struct X { 15 template<typename... Inner> 16 struct Y 17 { 18 typedef tuple<pair<Outer, Inner>...> type; // { dg-error "mismatched argument pack lengths" } 19 }; 20 }; 21 22 X<int, double>::Y<short, char, double>::type honk; 23