// { 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];
