title: "recursive on all control paths, function will cause runtime stack overflow" on overloaded << operator
body: <p>I have a section of code that seems to have a recursive warning when I compile, any ideas why?</p>
  
  <pre><code>ostream&amp; operator &lt;&lt; (ostream&amp; out, const node&amp; rhs)
      {
          out &lt;&lt; rhs.get_data();
          return out;
      }
  </code></pre>
  
  <p>It is calling this function:</p>
  
  <pre><code>node::value_type node::get_data() const
      {
          return data;
      }
  </code></pre>