title: warning: specialization of template in different namespace
body: <p>With the following piece of code I get the warning:</p>
  
  <p><code>warning: specialization of ‘template&lt;class _Iterator&gt; struct std::iterator_traits’ in different namespace [-fpermissive]</code></p>
  
  <pre><code>template&lt;&gt; class std::iterator_traits&lt;Token_ptr&gt;{
  public:
      typedef Word difference_type;
      typedef Word value_type;
      typedef Token_ptr pointer;
      typedef Word&amp; reference ;
      typedef std::bidirectional_iterator_tag iterator_category ;
  };
  </code></pre>
  
  <p>While everything works correctly, does any body know what exactly means and why is issued the warning.
  ( g++ issues the warning while clang++ doesn't ).</p>