How do I make this template argument variadic?
<p>Say I have a template declaration like this:</p>

<pre><code>template &lt;class A, class B, class C = A (&amp;)(B)&gt;
</code></pre>

<p>How would I make it so that I could have a variable amount of objects of type <code>C</code>? Doing <code>class C ...c = x</code> won't work because variadic template arguments can't have default values. So this is what I've tried:</p>

<pre><code>template &lt;typename T&gt;
struct helper;

template &lt;typename F, typename B&gt;
struct helper&lt;F(B)&gt; {
    typedef F (&amp;type)(B);
};

template &lt;class F, class B, typename helper&lt;F(B)&gt;::type ... C&gt;
void f(C ...c) { // error

}
</code></pre>

<p>But up to the last part I get error messages. I don't think I'm doing this right. What am I doing wrong here?</p>
