From 3b7775d0738461d8db376bf3139823b1b7f51826 Mon Sep 17 00:00:00 2001 From: Pavel P Date: Fri, 23 Jan 2026 18:49:40 +0200 Subject: [PATCH 1/2] Switch to std::string::data() in Utf16ToUtf8 (C++17) --- src/time_zone_name_win.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/time_zone_name_win.cc b/src/time_zone_name_win.cc index 3dcdfd7..3f3d209 100644 --- a/src/time_zone_name_win.cc +++ b/src/time_zone_name_win.cc @@ -134,9 +134,8 @@ std::string Utf16ToUtf8(const wchar_t* ptr, size_t size) { std::min(result.capacity(), std::numeric_limits::max()), 1); do { result.resize(len); - // TODO: Switch to std::string::data() when we require C++17 or higher. len = static_cast(::WideCharToMultiByte( - CP_UTF8, WC_ERR_INVALID_CHARS, ptr, chars_len, &result[0], + CP_UTF8, WC_ERR_INVALID_CHARS, ptr, chars_len, result.data(), static_cast(len), nullptr, nullptr)); } while (len > result.size()); result.resize(len); From c7ffae866348b6eb62ffe782c24637aac4b5515c Mon Sep 17 00:00:00 2001 From: Pavel P Date: Sat, 24 Jan 2026 00:29:25 +0200 Subject: [PATCH 2/2] Use address-of first char instead of data (c++11 compatibility) --- src/time_zone_name_win.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/time_zone_name_win.cc b/src/time_zone_name_win.cc index 3f3d209..55b2d8b 100644 --- a/src/time_zone_name_win.cc +++ b/src/time_zone_name_win.cc @@ -135,7 +135,7 @@ std::string Utf16ToUtf8(const wchar_t* ptr, size_t size) { do { result.resize(len); len = static_cast(::WideCharToMultiByte( - CP_UTF8, WC_ERR_INVALID_CHARS, ptr, chars_len, result.data(), + CP_UTF8, WC_ERR_INVALID_CHARS, ptr, chars_len, &result[0], static_cast(len), nullptr, nullptr)); } while (len > result.size()); result.resize(len);