 <p>You can always use <code>std::enable_if</code>:</p> <pre><code>template &lt;typename T, typename ... ARGS&gt; std::enable_if_t&lt;(sizeof...(ARGS)&gt;0)&gt; func(...) { ... } </code></pre> <p>In this case, <code>func</code> will only appear as part of the overload set if the size of <code>ARGS...</code> is greater than 0. However, if the size is zero, you will be missing a function from your overload set. Maybe that's want you want, though.</p>