title: Tail Recursion in C++ with multiple recursive function calls
body: <p>I was reading this <a href="https://stackoverflow.com/q/2693683/587884">post</a> on tail recursion. </p>
  
  <p>I'll copy the posted solution:</p>
  
  <pre><code>unsigned int f( unsigned int a ) {
     if ( a == 0 ) {
        return a;
     }
     return f( a - 1 );   // tail recursion
  }
  </code></pre>
  
  <p>I was wondering, what about if the result depends on several recursive function calls?
  For example:</p>
  
  <pre><code>unsigned int f( unsigned int a ) {
      if ( a == 0 ) {
            return a;
         }
      return f(a -1) + f( a - 1 );   
  }
  </code></pre>
  
  <p>Would the code above be optimized by the compiler?</p>