title: const reference binding to an rvalue
body: <p>Working on <a href="https://stackoverflow.com/questions/1304680">this</a> question, I found an inconsistent behavior.  </p>
  
  <p>Why reference binding behave different in a constructor from a common function?</p>
  
  <pre><code>struct A {
  };
  
  struct B : public A {
    B(){}
  private:
    B(const B&amp;);
  };
  
  void f( const B&amp; b ) {}
  
  int main() {
    A a( B() ); // works
    A const &amp; a2 = B(); // C++0x: works, C++03: fails
    f( B() );  // C++0x: works, C++03: fails
  }
  </code></pre>
  
  <p>I have tested it for C++03 with g++-4.1 and Comeau 4.2.45.2 in strict C++03 mode and with C++0x extensions disabled. I got same results.</p>
  
  <p>For C++0x was tested with g++-4.4 and Comeau 4.3.9 in relaxed mode and with C++0x extensions enabled. I got same results.</p>