How do I specialize a static member of a template class on a templated type?
<p>Say I have the following class:</p>

<pre><code>template&lt;class T&gt;
struct A
{
    static int value;
};

template&lt;class T&gt;
int A&lt;T&gt;::value = 0;
</code></pre>

<p>I can specialize A::value on a concrete type without problems:</p>

<pre><code>struct B
{
};

template&lt;&gt;
int A&lt;B&gt;::value = 1;
</code></pre>

<p>I'd like to specialize A::value on a template type, I tried the following:</p>

<pre><code>template&lt;class T&gt;
struct C
{
};

// error: template definition of non-template 'int A&lt;C&lt;T&gt; &gt;::value'
template&lt;&gt;
template&lt;class T&gt;
int A&lt;C&lt;T&gt; &gt;::value = 2;
</code></pre>

<p>Is there any way to do this or is it only possible to specialize A::value on non-template types?</p>
