title: use of class template requires template argument list link list
body: <p>I am trying to get a linked list, and here is my code<br/>
  <strong>node.h</strong></p>
  
  <pre><code>template&lt;class Node_entry&gt;
  struct Node{
      Node_entry entry;
      Node&lt;Node_entry&gt; *next;
  
      Node();
      Node(Node_entry entry,Node&lt;Node_entry&gt;* add_on=NULL);
  };
  
  template&lt;class Node_entry&gt;
  Node&lt;Node_entry&gt;::Node()
  {
      next=NULL;
  }
  
  template&lt;class Node_entry&gt;
  Node&lt;Node_entry&gt;::Node(Node_entry item,Node&lt;Node_entry&gt;* add_on)
  {
      entry=item;
      next=add_on;
  }
  </code></pre>
  
  <p><strong>Queue.h</strong></p>
  
  <pre><code>#include "node.h"
  
  enum Error_code{
      success,overflow,underflow
  };
  
  template&lt;class Queue_entry&gt;
  class Queue {
  public:
      Queue();
      bool empty() const;
      Error_code append(const Queue_entry &amp;item);
      Error_code serve();
      Error_code retrieve(Queue_entry &amp;item)const;
      int size()const;
      //Safety features for linked structures
      ~Queue();
      Queue(const Queue&lt;Queue_entry&gt; &amp;original);
      void operator = (const Queue&lt;Queue_entry&gt; &amp;original);
  protected:
      Node&lt;Queue_entry&gt; *front, *rear;
  };
  </code></pre>
  
  <p>and then i got a problem in following code:</p>
  
  <pre><code>template&lt;class Queue_entry&gt;
  Error_code Queue&lt;Queue_entry&gt;::append(const Queue_entry &amp;item)
  {
      Node&lt;Queue_entry&gt; *new_rear=new Node(item);
      if(new_rear==NULL) return overflow;
      if(rear==NULL) front=rear=new_rear;
      else{
          rear-&gt;next=new_rear;
          rear=new_rear;
      }
      return success;
  }
  </code></pre>
  
  <p>The compiler turns out 
  The code:</p>
  
  <pre><code>Node&lt;Queue_entry&gt; *new_rear=new Node(item);
  </code></pre>
  
  <p>error C2955: 'Node' : use of class template requires template argument list</p>