Fix msvc compiler error C4146 (unary minus operator applied to unsigned type)
On msvc14, int literal '-2147483648' is invalid, because '2147483648' is unsigned type and cant't apply minus operator to unsigned type. To define the int literal correctly, use '-2147483647 - 1' formula that is also used to define INT_MIN in limits.h.
This commit is contained in:
parent
292112f87e
commit
8e0720bdb9
1 changed files with 1 additions and 1 deletions
|
@ -321,7 +321,7 @@ BOOST_AUTO_TEST_CASE(test_ParseInt32)
|
||||||
BOOST_CHECK(ParseInt32("1234", &n) && n == 1234);
|
BOOST_CHECK(ParseInt32("1234", &n) && n == 1234);
|
||||||
BOOST_CHECK(ParseInt32("01234", &n) && n == 1234); // no octal
|
BOOST_CHECK(ParseInt32("01234", &n) && n == 1234); // no octal
|
||||||
BOOST_CHECK(ParseInt32("2147483647", &n) && n == 2147483647);
|
BOOST_CHECK(ParseInt32("2147483647", &n) && n == 2147483647);
|
||||||
BOOST_CHECK(ParseInt32("-2147483648", &n) && n == -2147483648);
|
BOOST_CHECK(ParseInt32("-2147483648", &n) && n == (-2147483647 - 1)); // (-2147483647 - 1) equals INT_MIN
|
||||||
BOOST_CHECK(ParseInt32("-1234", &n) && n == -1234);
|
BOOST_CHECK(ParseInt32("-1234", &n) && n == -1234);
|
||||||
// Invalid values
|
// Invalid values
|
||||||
BOOST_CHECK(!ParseInt32("", &n));
|
BOOST_CHECK(!ParseInt32("", &n));
|
||||||
|
|
Loading…
Reference in a new issue