title: what does "A uses B, which is being defined" mean?
body: <p>now i did do as the rules asked and first looked to see if this was answered already, and while i did find a post, it failed to solve my specific problem, thus i ask in my own.</p>
  
  <p>for a brief bit of context, this error is within the node class for a double-linked-list class i am making, thus obviously the node has to have some kind of knowledge of its proceeding and preceding neighbors </p>
  
  <p>the following code...</p>
  
  <pre><code>    template&lt;class T&gt; class dslListNode
      {
      public:
          dslListNode(T data, dslListNode&lt;T&gt;* next, dslListNode&lt;T&gt;* prev)
          : m_data(data)
          {
              this-&gt;m_next = next;
              this-&gt;m_prev = prev;
          }
  
          T m_data;
          dslListNode&lt;T&gt;* m_next, m_prev;   //&lt;-- line twelve
          void purge()
          {
              if (this-&gt;m_next != NULL)
              {
                  this-&gt;m_next-&gt;purge();
                  delete this-&gt;m_next;
              }
          }
      private:
      };
  </code></pre>
  
  <p>...on line twelve wont stop giving me the following error</p>
  
  <pre><code>Error   C2460
  'dslListNode&lt;T&gt;::m_prev': uses 'dslListNode&lt;T&gt;', which is being defined
  </code></pre>
  
  <p>so ya...</p>
  
  <p>i am honestly at a loss as to what is going on right now, my skills at c++ aren't to the level at which i understand why such a thing is happening, with the internet up till now not helping in this respect, thus i ask for help.</p>
  
  <p>why is this happening and what can i do to solve it?</p>
  
  <p>apologies for my grammar and spelling btw =D</p>
  
  <p>thanks in advanced =)</p>