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++.