about unsigned_to_decimal(-static_cast<uint64_t>(val), &buf[1]);
Dear guys,

I met a C2220 error at row 249 of kaitaistream.h, here why put minus "-" to an unsigned number? could you give a hint?

```cpp
    static to_string(I val) {
        // in theory, `digits10 + 3` would be enough (minus sign + leading digit
        // + null terminator), but let's add a little more to be safe
        char buf[std::numeric_limits<I>::digits10 + 5];
        if (val < 0) {
            buf[0] = '-';
            // get absolute value without undefined behavior (https://stackoverflow.com/a/12231604)
            unsigned_to_decimal(-static_cast<uint64_t>(val), &buf[1]);   //C2220 occurs
        } else {
            unsigned_to_decimal(val, buf);
        }
        return std::string(buf);
    }
```

Thank you very much!