From 915aa6c4c7d468d50170fe65a4755c6f1b5b6917 Mon Sep 17 00:00:00 2001
From: Brett Lesnau <B.Lesnau@TechSmith.com>
Date: Mon, 21 Apr 2025 16:25:17 -0400
Subject: [PATCH] Fixing implicit instantiation errors with newer libc++ on
 macOS

---
 Release/include/cpprest/streams.h | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/Release/include/cpprest/streams.h b/Release/include/cpprest/streams.h
index b6c3864028..f04309c7f4 100644
--- a/Release/include/cpprest/streams.h
+++ b/Release/include/cpprest/streams.h
@@ -76,16 +76,20 @@ template<>
 struct Value2StringFormatter<uint8_t>
 {
     template<typename T>
-    static std::basic_string<uint8_t> format(const T& val)
+    static std::vector<uint8_t> format(const T& val)
     {
-        std::basic_ostringstream<char> ss;
+        std::ostringstream ss;
         ss << val;
-        return reinterpret_cast<const uint8_t*>(ss.str().c_str());
+        std::string s = ss.str();
+
+        return std::vector<uint8_t>(reinterpret_cast<const uint8_t*>(s.data()),
+                                    reinterpret_cast<const uint8_t*>(s.data()) + s.size());
     }
 
-    static std::basic_string<uint8_t> format(const utf16string& val)
+    static std::vector<uint8_t> format(const utf16string& val)
     {
-        return format(utility::conversions::utf16_to_utf8(val));
+        std::string utf8 = utility::conversions::utf16_to_utf8(val);
+        return format(utf8);
     }
 };