cast expressions
    Dennis 
    dkorpel at gmail.com
       
    Wed May  3 09:32:09 UTC 2023
    
    
  
On Wednesday, 3 May 2023 at 09:03:38 UTC, Dom DiSc wrote:
> I know, (c) is a constructor call, but for basic types that's 
> the same as (a) isn't it?
No, a cast allows for overflow `cast(ubyte) 256`, while the 
constructor needs an integer that fits. `ubyte(256)` is an error.
> If t provides a constructor for typeof(x) and x provides opCast 
> to type t, which one is called?
When casting, opCast has precedence over a constructor.
> Does all three forms work if only the constructor or only the 
> opCast is provided?
A constructor call will not be lowered to opCast, but a cast can 
be lowered to a constructor call.
> And is (b) always equivalent to (a)?
C style cast syntax is not allowed in D.
    
    
More information about the Digitalmars-d-learn
mailing list