Rvalue references - The resolution

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Mon May 6 08:39:07 PDT 2013


On 5/6/13 11:34 AM, deadalnix wrote:
> On Monday, 6 May 2013 at 13:43:38 UTC, Andrei Alexandrescu wrote:
>> I think we can technically make the overloading work while also
>> allowing binding rvalues to ref. But that wouldn't help any. Consider:
>>
>> ref int min(ref int a, ref int b) { return b < a ? b : a; }
>> ...
>> int x;
>> fun(min(x, 100));
>>
>> Here the result of min may be bound to an lvalue or an rvalue
>> depending on a condition. In the latter case, combined with D's
>> propensity to destroy temporaries too early (immediately after
>> function calls), the behavior is silently undefined; the code may pass
>> unittests.
>>
>
> Now that you mention that, is the proposal for ref safety is really safe ?

Yes, because it's dynamically checked.

Andrei


More information about the Digitalmars-d mailing list