title: What does a template class without arguments, `template<>` mean?
body: <p>What does a template class without arguments mean? For example, let's take a template class who calculate factorial, whose template arguments in N - <code>N!</code>.</p>
  
  <p>basically, this is the class:</p>
  
  <pre><code>template &lt;int N&gt; class Factorial
  {
  public:
      enum {fact = N * Factorial&lt;N-1&gt;::fact};
  };
  </code></pre>
  
  <p>But, I found that the this class have an "extention class", </p>
  
  <pre><code>template&lt;&gt; class Factorial&lt;1&gt;
  {
  public:
      enum {fact = 1};
  };
  </code></pre>
  
  <p>And here my question is: what does a template without arguments, <code>template&lt;&gt;</code> mean?</p>
  
  <p>Thanks in advance.</p>