On Tuesday, 6 October 2015 at 14:46:56 UTC, tcak wrote:
void main(){
        size_t dec = 0;

How is it generating "true" for (dec <= -10) ? Is there a special casting or something?

size_t is unsigned, so the -10 is cast to unsigned too for the comparison which yields some huge number.

Comparing signed to unsigned is almost always a mistake... but one D inherited from C.

This is a reason why I prefer to use int instead of size_t where I can but that might require casts and truncation too.

Reply via email to