The values of the variables here can be determined during compilation.
Should there be some kind of warning like, unsigned integer may not be compared to a value less than zero; or there shouldn't be since the programmer should have known what he's doing?

import std.stdio;

void f1() {
    uint n = 0;
    uint ans = n - 1u;
    if (ans < 0) {                           // warning?
        writeln("Less than or equal 0.");
    } else {
        writeln("Just like C++.");
    }
}

void f2() {
    const uint n = 0;
    const uint ans = n - 1u;
    static if (ans < 0) {                    // warning?
        writeln("Less than or equal 0.");
    } else {
        writeln("Just like C++.");
    }
}

void main() {
    f1();
    f2();
}

Reply via email to