auto ref is on the docket
via Digitalmars-d
digitalmars-d at puremagic.com
Mon Jun 22 03:04:27 PDT 2015
On Monday, 22 June 2015 at 06:38:57 UTC, Andrei Alexandrescu
wrote:
> On 6/21/15 11:31 PM, Andrei Alexandrescu wrote:
>> On 6/21/15 10:25 PM, Walter Bright wrote:
>>> The idea is that fun(5) would be lowered to:
>>>
>>> auto tmp = 5;
>>> fun(tmp);
>>
>> I don't think that lowering is recommended - it prolongs the
>> lifetime of
>> the temporary through the end of the caller. But that may be
>> actually a
>> good thing.
>
> On second thought - Walter's lowering, which makes the rvalue
> last more than strictly necessary, may be the most flexible of
> all at the cost of more resource consumption (for types that
> define destructors). -- Andrei
Why would that be desirable? Resource consumption is the least of
the problems. It is simply surprising, inconsistent with the
lifetime of other temporaries, and it is unnecessary. Just lower
it to:
{
auto tmp = 5;
fun(tmp);
}
More information about the Digitalmars-d
mailing list