diff --git a/include/nlohmann/detail/input/binary_reader.hpp b/include/nlohmann/detail/input/binary_reader.hpp index f0c73f1b..0b649d02 100644 --- a/include/nlohmann/detail/input/binary_reader.hpp +++ b/include/nlohmann/detail/input/binary_reader.hpp @@ -2271,7 +2271,8 @@ class binary_reader string_t& result) { bool success = true; - for(NumberType i = 0; i < len; i++) { + for (NumberType i = 0; i < len; i++) + { get(); if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, "string"))) { @@ -2303,7 +2304,8 @@ class binary_reader binary_t& result) { bool success = true; - for(NumberType i = 0; i < len; i++) { + for (NumberType i = 0; i < len; i++) + { get(); if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, "binary"))) { diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp index 1d8b5fb6..2057c543 100644 --- a/single_include/nlohmann/json.hpp +++ b/single_include/nlohmann/json.hpp @@ -8136,15 +8136,16 @@ class binary_reader string_t& result) { bool success = true; - std::generate_n(std::back_inserter(result), len, [this, &success, &format]() + for (NumberType i = 0; i < len; i++) { get(); if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, "string"))) { success = false; + break; } - return std::char_traits::to_char_type(current); - }); + result.push_back(std::char_traits::to_char_type(current)); + }; return success; } @@ -8168,15 +8169,16 @@ class binary_reader binary_t& result) { bool success = true; - std::generate_n(std::back_inserter(result), len, [this, &success, &format]() + for (NumberType i = 0; i < len; i++) { get(); if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, "binary"))) { success = false; + break; } - return static_cast(current); - }); + result.push_back(static_cast(current)); + } return success; }