Remove std::char_traits for non-standard types
The C++ standard specifies that std::char_traits<T> is defined for
char, wchar_t, char8_t, char16_t, and char32_t. Upstream libc++
previously provided a base template implementation for
std::char_traits, but this was not well-thought-out. New versions of
libc++ omit this definition.
In particular, this removal means that std::char_traits<unsigned char>
is now undefined, which means that std::basic_string and
std::basic_string_view no longer work with an unsigned char element
type.
See this link for details:
https://discourse.llvm.org/t/deprecating-std-string-t-for-non-character-t/66779
Remove the base template for std::char_traits<T> preemptively to help
catch users of this now-removed extension, and prevent new ones.
Bug: http://b/175635923
Test: treehugger
Change-Id: Ib4356e07fe87aa664a4a522388bb10d55efcc2d9
1 file changed