• Abseil Team's avatar
    Googletest export · 1a8ecf18
    Abseil Team authored
    Print std::u8string, std::u16string, and std::u32string as string literals
    
    Previously, these types were printed as "{ U+123, U+456, U+789 }". However,
    printed output in that form is difficult to compare against any literals that
    might be defined in code. Instead, just treat these types like std::string
    and std::wstring, escaping non-ASCII characters with a hexadecimal escape
    sequence.
    
    The tests have also been updated to cover the new functionality: as a bonus,
    the tests now also pass with the MSVC toolchain.
    
    Internally, the code has been reorganized to primarily operate in terms of
    char32_t, under the assumption that char32_t will always be at least as big
    as wchar_t. While that assumption is currently true, perhaps it won't be in
    the future...
    
    PiperOrigin-RevId: 364033132
    1a8ecf18
BUILD.bazel 5.62 KB