title: error C2244 unable to match function definition to an existing declaration
body: <p>I'm trying to create a simple template list in C++ with Visual Studio 2010
  and I'm the getting:</p>
  <pre><code>error C2244 unable to match function definition to an existing declaration
  </code></pre>
  <p>I've tried to change it to <code>typename T</code> but it didn't help.</p>
  <p>It's a basic template list with very basic functions (Ctor, Dtor, Add, Delete).</p>
  <p>Please help.</p>
  <pre><code>#ifndef LIST_H_
  #define LIST_H_
  
  template &lt;typename T&gt;
  class Node
  {
      T* m_data;
      Node* next;
  public:
      Node(T*, Node&lt;T&gt;*);
      ~Node();
      void Delete (Node&lt;T&gt;* head);
  };
  
  template &lt;typename T&gt;
  Node::Node(T* n, Node&lt;T&gt;* head)
  { 
      this-&gt;m_data = n;
      this-&gt;next=head;
  }
  
  template &lt;typename T&gt;
  void Node::Delete(Node&lt;T&gt;* head)
  {
      while(head)
      {
          delete(head-&gt;m_data);
          //head-&gt;m_data-&gt;~data();
          head=head-&gt;next;
      }
  }
  
  template &lt;typename T&gt;
  class List
  {
      Node&lt;T*&gt; head;
  public:
      List();
      ~List();
      void addInHead (T*);
  };
  
  template &lt;typename T&gt;
  void List :: addInHead (T* dat)
  {
      head = new Node&lt;T*&gt; (dat,head);
  }
  
  template &lt;typename T&gt;
  List::List()
  {
      head = NULL;
  }
  
  template &lt;typename T&gt;
  List :: ~List()
  {
      head-&gt;Delete(head);
  }
  
  #endif
  </code></pre>