DIP 1016--ref T accepts r-values--Formal Assessment

Walter Bright newshound2 at digitalmars.com
Fri Jan 25 19:08:55 UTC 2019


On 1/25/2019 2:57 AM, kinke wrote:
> On Thursday, 24 January 2019 at 23:59:30 UTC, Walter Bright wrote:
>> On 1/24/2019 1:03 PM, kinke wrote:
>>> (bool __gate = false;) , ((A __pfx = a();)) , ((B __pfy = b();)) , __gate = 
>>> true , f(__pfx, __pfy);
>>
>> There must be an individual gate for each of __pfx and pfy. With the rewrite 
>> above, if b() throws then _pfx won't be destructed.
> 
> There is no individual gate, there's just one to rule the caller-destruction of 
> all temporaries.

What happens, then, when b() throws?


More information about the Digitalmars-d-announce mailing list