Detectar si un tipo es un std :: tuple?

Actualmente tengo dos funciones:

template<typename Type> bool f(Type* x);
template<typename... List> bool f(std::tuple<List...>* x);

¿Hay alguna manera de combinar estas dos funciones con un parámetro de plantilla adicional que indique si el tipo pasado es una tupla?

template<typename Type, bool IsTuple = /* SOMETHING */> bool f(Type* x);

Respuestas a la pregunta(5)

Su respuesta a la pregunta