]> code.bitgloo.com Git - clyne/constexpr-to-string.git/commit
Fixed potential bug with -MINIMUM_VALUE
authorEnilPajic <epajic1@etf.unsa.ba>
Fri, 26 Jun 2020 19:25:39 +0000 (21:25 +0200)
committerGitHub <noreply@github.com>
Fri, 26 Jun 2020 19:25:39 +0000 (21:25 +0200)
commit5baf5d3daeece33e0767a1c8fbd1b85daa84f45e
treed6111dbdb6ab84514182b182d92639d5ec838b9a
parent2be778931d2029c3ff121023e5c2c217f69e61d5
Fixed potential bug with -MINIMUM_VALUE

Original code had something like `N < 0 ? -N : N` which could fail if `N` has minimum value of appropriate type. For example, in original code this could fail:
```cpp
const long long int LL_MIN = std::numeric_limits<long long int>::min(); //probably: -9223372036854775808
static const char *number = to_string<LL_MIN, 10>;
```

Also note that this code relies on "modulo on negative first operands" which was implementation defined in C++03 and before, but with C++11 and later it is defined by standard (see `ISO14882:2011(e)`), and this code anyway targets C++17 so we're safe here.
to_string.hpp