Is a temporary value created in this code?
<p>Consider the following code:</p>

<pre><code>class B;

class A
{
  public:
    A() {}
    A(B &amp;b);
};

class B {};

A::A(B &amp;b) {}

int main()
{
    B b;

    const A &amp;refa = b;// does this line create a temporary value?

    return 0;
}
</code></pre>

<p>My question is: does the code <code>const A &amp;refa = b;</code> create a temporary value or not? </p>
