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