What is the rationale for not allowing temporaries bound to references in initialization lists to live past end of ctor?
<p>Simple example:</p>

<pre><code>struct A
{
   A() : i(int()) {}
   const int&amp; i;
};
</code></pre>

<p>Error from gcc:</p>

<blockquote>
  <p>a temporary bound to 'A::i' only persists until the constructor exits</p>
</blockquote>

<p>Rule from 12.2p5:</p>

<blockquote>
  <p>A temporary bound to a reference member in a constructor’s
  ctor-initializer (12.6.2) persists until the constructor exits.</p>
</blockquote>

<p><strong>Question</strong></p>

<p>Does anybody know the rationale for this rule? It would seem to me that allowing the temporary to live  until reference dies would be better.</p>
