title: How to forward declare a template class in namespace std?
body: <pre><code>#ifndef __TEST__
  #define __TEST__
  
  namespace std
  {
      template&lt;typename T&gt;
      class list;
  }
  
  template&lt;typename T&gt;
  void Pop(std::list&lt;T&gt; * l)
  {
      while(!l-&gt;empty())
          l-&gt;pop();
  }
  
  #endif
  </code></pre>
  
  <p>and used that function in my main. I get errors. Of course, I know that there are more template params for <code>std::list</code> (allocator I think). But, that is beside the point. Do I have to know the full template declaration of a template class to be able to forward declare it?</p>
  
  <p>EDIT: I wasn't using a pointer before - it was a reference. I'll try it out with the pointer.</p>