Why is this not a warning?

tsbockman via Digitalmars-d digitalmars-d at puremagic.com
Thu Mar 17 04:04:31 PDT 2016


On Thursday, 17 March 2016 at 09:59:41 UTC, Dominikus Dittes 
Scherkl wrote:
> Or you can use an improved opCmp implementation in the 
> compiler, that only add additional runtime cost, if someone is 
> stupid enough to compare signed with unsigned values - but 
> yield the correct result:

For the signed/unsigned comparison problem, specifically - I 
agree that would be the best solution (and is what D should have 
done originally). There's nothing "stupid" about doing mixed 
comparisons correctly, either - I doubt the performance hit would 
even be measurable in most code.

(`checkedint` solves a lot of other problems; the 30% performance 
hit does *not* come from properly handling signed/unsigned 
comparisons. A library-level wrapper that only fixed that one 
problem, and none of the others, could be super fast with proper 
optimizations.)

However, Walter and Andrei already decided that we should just 
have a warning for unsafe comparisons, instead. Just trying to 
get the warning implemented has dragged on for years already, so 
I'm not anxious to go back to square one by arguing for a 
different solution entirely...


More information about the Digitalmars-d mailing list