Reddit: SafeD - The Safe Subset of D

Bruno Medeiros brunodomedeiros+spam at com.gmail
Mon Mar 24 08:21:00 PDT 2008


Charles D Hixson wrote:
> 
> PPS:  When talking about casts or type conversions, please make it 
> explicit whether the same bit pattern is maintained. I often read those 
> descriptions, and realize that I can't figure out exactly what is 
> happening.  With C I was always certain that I was just telling the 
> compiler to think about the same piece of memory differently, and that 
> nothing actually changed.  With more modern languages, a lot more magic 
> happens under the hood, and I'm no longer as certain what's going on.  I 
> often wonder after reading the documentation whether the same bit 
> pattern is maintained, or whether an equivalent value is produced.  
> E.g., I've never tried casting a float to a long.  What would it 
> produce?  I can't predict.  I'd often prefer to deal with ulongs or 
> ucents rather than byte arrays, but then at other times I need to 
> address particular bytes out of that value.  Because I don't really 
> understand a cast, I just use byte arrays (well, ubyte).  But it's 
> "sloppier".  Generally I'm dealing with a unitary entity, and needing to 
> think of it as an array all the time is uncomfortable.  (I'd even like a 
> notation for dealing with particular bits, though I haven't needed that 
> recently.)
> Note that this isn't a request for a change in how things act, but 
> rather in how they are documented.
> I *suspect* that cast is presumed to be defined by C, and that it means 
> "Think about they type differently, but don't change it's bit pattern", 
> but I'm never quite certain.

Yup, this is one of the C legacy behaviors/mentality that I've found 
ever more irritant. I would prefer that the language syntax would better 
distinguish between opaque casts (no bit changes) and conversion casts 
(bit changes, since a conversion is made).


-- 
Bruno Medeiros - MSc in CS/E student
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D


More information about the Digitalmars-d-announce mailing list