diff --git a/include/fmt/chrono.h b/include/fmt/chrono.h index bed584b6..9ad6d843 100644 --- a/include/fmt/chrono.h +++ b/include/fmt/chrono.h @@ -362,7 +362,7 @@ auto write_encoded_tm_str(OutputIt out, string_view in, const std::locale& loc) if (detail::is_utf8() && loc != get_classic_locale()) { // char16_t and char32_t codecvts are broken in MSVC (linkage errors) and // gcc-4. -#if FMT_MSC_VERSION != 0 || \ +#if FMT_MSC_VERSION < 1932 || \ (defined(__GLIBCXX__) && !defined(_GLIBCXX_USE_DUAL_ABI)) // The _GLIBCXX_USE_DUAL_ABI macro is always defined in libstdc++ from gcc-5 // and newer. diff --git a/include/fmt/core.h b/include/fmt/core.h index d7ca348e..50ca0b3a 100644 --- a/include/fmt/core.h +++ b/include/fmt/core.h @@ -233,7 +233,13 @@ #endif #ifndef FMT_UNICODE -# define FMT_UNICODE !FMT_MSC_VERSION +# if FMT_CLANG_VERSION +# define FMT_UNICODE 1 +# elif defined(_MSVC_EXECUTION_CHARACTER_SET) && (_MSVC_EXECUTION_CHARACTER_SET == 65001) +# define FMT_UNICODE 1 +# else +# define FMT_UNICODE !FMT_MSC_VERSION +# endif #endif #ifndef FMT_CONSTEVAL