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); } };