// { dg-do compile { target c++11 } }
template<typename... Args>
struct tuple_base {
  static const int value = 0;
};
template<>
struct tuple_base<int*>
{
  static const int value = 1;
};
template<typename T>
struct tuple_base<T*>
{
  static const int value = 2;
};
template<typename... Args>
struct tuple_of_pointers : tuple_base<Args*...> { };
int a1[tuple_of_pointers<int>::value == 1? 1 : -1];
int a2[tuple_of_pointers<float>::value == 2? 1 : -1];