Wykryj, czy typ jest std :: tuple?

Obecnie mam dwie funkcje:

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

Czy istnieje sposób scalenia tych dwóch funkcji z dodatkowym parametrem szablonu, który wskazuje, czy przekazany typ jest krotką?

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