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.

Reply via email to