title: Do template specializations require template<> syntax?
body: <p>I have a visitor class resembling this:</p>
  
  <pre><code>struct Visitor 
  {
      template &lt;typename T&gt;
      void operator()(T t)
      {
          ...
      }
  
      void operator()(bool b)
      {
          ...
      }
  };
  </code></pre>
  
  <p>Clearly, <strong><code>operator()(bool b)</code></strong> is intended to be a specialization of the preceding template function.</p>
  
  <p>However, it doesn't have the <strong><code>template&lt;&gt;</code></strong> syntax that I'm used to seeing before it, declaring this as a template specialization.  But it does compile.</p>
  
  <p>Is this safe?  Is this correct?</p>