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<char_type>::to_char_type(current);
-        });
+            result.push_back(std::char_traits<char_type>::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<std::uint8_t>(current);
-        });
+            result.push_back(static_cast<std::uint8_t>(current));
+        }
         return success;
     }