Specialized templates - the purpose
<p>I know what templates in c++ do, but today I've seen some strange piece of code:</p>

<pre><code>template &lt;&gt; void swap(foo &amp;a, foo &amp;b)
{
   a.name = b.name;
   a.id = 1;
   // blah blah blah
}
</code></pre>

<p>I did a little research and found out that it's called specialized template, or something similar.</p>

<p>If in the code above I'd delete <code>template &lt;&gt;</code> part, I would get exactly the same results. There's also no universal types like in usual template function...</p>

<p>My question is - what is the purpose of using them?</p>
