This is what I\'m trying to do:
// base case void f() {} template void f() {
Since c++20 you can use constraints to functions, instead of SFINAE.
template requires (sizeof...(Ts) == 0) void f(){} template void f() { // do something with T f(); }