On Thursday, 28 October 2021 at 21:23:15 UTC, kyle wrote:
```
void main()
{
    import std.math : abs, sgn;

    alias n_type = short; //or int, long, byte, whatever

    assert(n_type.min == abs(n_type.min));
    assert(sgn(abs(n_type.min)) == -1);
}
```
I stumbled into this fun today. I understand why abs yields a negative value here with overflow and no promotion. I just want to know if it should. Should abs ever return a negative number? Thanks.

Okay I checked the phobos docs and it does say "Limitations
Does not work correctly for signed intergal types and value Num.min." Should have looked there first, I know. Still seems pretty silly.

Reply via email to