title: Pass function return value to reference parameter cause compilation error in GCC
body: <p>Suppose I have this function declared:</p>
  
  <pre><code>class A
  {
  ...
   public:
     void setRect(Rect &amp; rct);
  ...
  }
  </code></pre>
  
  <p>The member <code>setRect</code> is called like this.</p>
  
  <pre><code>A a;
  a.setRect(Some_Func_Return_A_Rect_Object());
  </code></pre>
  
  <p>The gcc compiler complains that no matching function found A::setRect(<strong>Rect</strong>)</p>
  
  <p>If I call like this ,it is fine:</p>
  
  <pre><code>A a;
  Rect rct = Some_Func_Return_A_Rect_Object();
  a.setRect(rct);
  </code></pre>
  
  <p>Did the standard say something about this?  GCC just do not allow the first way of calling <code>setRect()</code> function?</p>