title: perfect forwarding only via template
body: <p>I was reading about "perfect forwarding".
  Why does this only work with a template:</p>
  
  <pre><code>// example from justsoftwaresolutions  
  void g(X&amp;&amp; t); // 2  
  void g(X&amp; t);  // 1  
  
  template&lt;typename T&gt;    
  void f(T&amp;&amp; t)  
  {  
      g(std::forward&lt;T&gt;(t));   
  }    
  
  
  int main()  
  {  
      X x;  
      f(x);   // 1  
      f(X()); // 2  
  }  
  </code></pre>
  
  <p>What is function is generated from the template for f(x) and f(X()) ?</p>
  
  <p>What does std:forward