Effect on original feature: Valid C++ 2017 code that passes UTF-8 literals to
basic_ostream<char, ..>::operator< or
basic_ostream<wchar_t, ..>::operator< is now ill-formed.
[Example 2: std::cout <<u8"text"; / previously called operator<<(const char*) and printed a string;/ now ill-formed
std::cout <<u8'X'; / previously called operator<<(char) and printed a character;/ now ill-formed — end example]
Effect on original feature: Valid C++ 2017 code that passes
wchar_t, char16_t, or char32_t characters or strings
to basic_ostream<char, ..>::operator< or
that passes char16_t or char32_t characters or strings
to basic_ostream<wchar_t, ..>::operator< is now ill-formed.
[Example 3: std::cout <<u"text"; / previously formatted the string as a pointer value;/ now ill-formed
std::cout <<u'X'; / previously formatted the character as an integer value;/ now ill-formed — end example]
Effect on original feature: Valid C++ 2017 code that depends on the u8string() and
generic_u8string() member functions of std::filesystem::path
returning std::string is not valid in this revision of C++.