1 // { dg-do compile { target c++11 } } 2 template<typename... Args> 3 struct tuple_base { 4 static const int value = 0; 5 }; 6 7 template<> 8 struct tuple_base<int*> 9 { 10 static const int value = 1; 11 }; 12 13 template<typename T> 14 struct tuple_base<T*> 15 { 16 static const int value = 2; 17 }; 18 19 template<typename... Args> 20 struct tuple_of_pointers : tuple_base<Args*...> { }; 21 22 int a1[tuple_of_pointers<int>::value == 1? 1 : -1]; 23 int a2[tuple_of_pointers<float>::value == 2? 1 : -1]; 24