This syntax regarding null checking baffles me
    ag0aep6g 
    anonymous at example.com
       
    Sun Jan 10 18:10:08 UTC 2021
    
    
  
On Sunday, 10 January 2021 at 10:42:48 UTC, Jonathan M Davis 
wrote:
> IIRC, if the class overrides opCast for bool, then
>
>     if(c)
>
> will cast the object to bool and use the result for the if 
> condition, whereas
>
>     if(c !is null)
>
> always checks whether the reference is null.
You're misremembering. Or maybe it was changed since you last 
checked. A rewrite from `if (c)` to `if (c.opCast!bool)` "only 
happens, however, for instances of structs. Class references are 
converted to bool by checking to see if the class reference is 
null or not."
https://dlang.org/spec/operatoroverloading.html#boolean_operators
    
    
More information about the Digitalmars-d
mailing list