diff --git a/README.md b/README.md index 4ad40373ba16d1c391f4b872df9d1190587a1da4..f6b8408398e8756ae06e725f34550c1e0f586790 100644 --- a/README.md +++ b/README.md @@ -485,6 +485,7 @@ I deeply appreciate the help of the following people. - [Tom Needham](https://github.com/06needhamt) fixed a subtle bug with MSVC 2015 which was also proposed by [Michael K.](https://github.com/Epidal). - [Mário Feroldi](https://github.com/thelostt) fixed a small typo. - [duncanwerner](https://github.com/duncanwerner) found a really embarrassing performance regression in the 2.0.0 release. +- [Damien](https://github.com/dtoma) fixed one of the last conversion warnings. Thanks a lot for helping out! diff --git a/src/json.hpp b/src/json.hpp index 35bdd293c3291017dad2b85d020a5f8877430adf..a6775e53e6a2007c1e25f65e3ceb6f29465a3610 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -5957,16 +5957,15 @@ class basic_json { // convert a number 0..15 to its hex representation // (0..f) - const auto hexify = [](const int v) -> char + static const char hexify[16] = { - return (v < 10) - ? ('0' + static_cast(v)) - : ('a' + static_cast((v - 10) & 0x1f)); + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; // print character c as \uxxxx for (const char m : - { 'u', '0', '0', hexify(c >> 4), hexify(c & 0x0f) + { 'u', '0', '0', hexify[c >> 4], hexify[c & 0x0f] }) { result[++pos] = m; diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index adc2e188ce237d4f5ed6416760c30839f72079f4..1967f6a816eada2c84672cbc8bfae738e038687b 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -5957,18 +5957,15 @@ class basic_json { // convert a number 0..15 to its hex representation // (0..f) - const auto hexify = [](const int v) -> char + static const char hexify[16] = { - static const char hex[16] = { '0', '1', '2', '3', - '4', '5', '6', '7', - '8', '9', 'a', 'b', - 'c', 'd', 'e', 'f' }; - return hex[v]; + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; // print character c as \uxxxx for (const char m : - { 'u', '0', '0', hexify(c >> 4), hexify(c & 0x0f) + { 'u', '0', '0', hexify[c >> 4], hexify[c & 0x0f] }) { result[++pos] = m;