Bug? 0 is less than -10

anonymous via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Oct 6 07:55:35 PDT 2015


On Tuesday, 6 October 2015 at 14:46:56 UTC, tcak wrote:
> Maybe I am just too stressed out to see the problem.
>
> [code]
> import std.stdio;
>
> void main(){
> 	size_t dec = 0;
>
> 	writeln( dec, " ", (dec <= -10), " ", (dec >= 10), " ", ((dec 
> <= -10) || (dec >= 10)) );
> }
> [/code]
>
> [output]
> 0 true false true
> [/output]
>
> How is it generating "true" for (dec <= -10) ? Is there a 
> special casting or something?
>
> DMD 2.068.2, Ubuntu 64-bit

dec is a size_t. size_t is unsigned. -10 is cast to unsigned for 
the comparison, resulting in some huge value.


More information about the Digitalmars-d-learn mailing list