「可変個引数テンプレート」についてですが、
関数の多重定義を使わずに、sizeof...(args)の値が0かそれ以上かで条件分岐するコードにはできないですか?
実装を一箇所にまとめておきたい、というニーズのためです。

template <typename T, typename... Ts>
void func(T x, Ts... xs) {
std::cout << x << std::endl;
if (sizeof...(xs)) func(xs);
}

みたいなイメージなんですが、これだと
コンパイル時にif判定されるわけじゃないので「func()がないよ」って怒られます。