1 // { dg-do compile { target c++11 } } 2 template<typename... Elements> struct tuple {}; 3 4 template<typename... Args> 5 struct nested 6 { 7 typedef tuple<tuple<Args, Args...>...> type; 8 }; 9 10 template<typename T, typename U> 11 struct is_same 12 { 13 static const bool value = false; 14 }; 15 16 template<typename T> 17 struct is_same<T, T> 18 { 19 static const bool value = true; 20 }; 21 22 int a0[is_same<nested<int, float>::type, 23 tuple<tuple<int, int, float>, 24 tuple<float, int, float> > >::value? 1 : -1]; 25