dmd 1.046 and 2.031 releases

Walter Bright newshound1 at digitalmars.com
Mon Jul 6 11:00:17 PDT 2009


Denis Koroskin wrote:
> I'd put an assert and mad a case explicit, if there is a size_t is so 
> badly needed for ptr difference:
> 
> assert(p1 >= p2);
> size_t y = cast(size_t)p1 - p2;

Aside from the typo in that code (!) the problem with casts is they are 
a sledgehammer approach. Casts should be minimized because they *hide* 
typing problems in the code. The more casts in the code, the more the 
type-checking abilities of the compiler are disabled. I suspect this 
will *hide* more bugs than it reveals.

The reality is is that most integers used in programs are positive and 
relatively small. int and uint are equally correct for these, and people 
tend to use both in a mish-mash. Trying to build a barrier between them 
that requires explicit casting to overcome is going to require a lot of 
casts that accomplish nothing other than satisfying a nagging, annoying 
compiler.

I've used such a compiler - Pascal back in the early 80s. All the casts 
it required me to insert basically sucked (and never revealed a single 
bug). When I discovered C with its sensible system of implicit casting, 
it was like putting on dry clothes after being soaked out in the cold rain.


More information about the Digitalmars-d-announce mailing list