<div dir="ltr">I'm surprised this doesn't produce a warning:<div><br></div><div><div>struct S</div><div>{</div><div><span class="" style="white-space:pre">     </span>S(const int& i) : i(i) {}</div><div><span class="" style="white-space:pre">      </span>const int& i;</div><div>};</div><div><br></div><div>void foo(long l)</div><div>{</div><div><span class="" style="white-space:pre"> </span>S s(l); // binding a const ref to temporary</div><div>}</div><div><br></div><div>int main()</div><div>{</div><div><span class="" style="white-space:pre">      </span>foo(1l);</div><div>}</div></div><div><br></div></div>