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

Walter Bright newshound2 at digitalmars.com
Thu Jan 24 23:59:30 UTC 2019

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.

(All this rigamarole is part of why exception handling isn't free, even in the 
happy case.)

More information about the Digitalmars-d-announce mailing list