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