Я работаю с символами unicode/wide, и я пытаюсь создать метод toString (Java ::toString equiv). Будет ли ostream обрабатывать широкие символы, если есть ли способ предупредить потребителя потока, что он выходит из него из Юникода?Написание символов Unicode на OStream
5
A
ответ
3
Ни ostream
, ни остальная часть C++ ничего не знают о Unicode. Обычно вы пишете преобразование строки в C++ следующим образом:
template<typename Char, typename Traits>
std::basic_ostream<Char, Traits>&
operator<<(std::basic_ostream<Char, Traits>& stream, const YourType& object) {
return stream << object.a << object.b; // or whatever
}
ли вы получить что-то Unicode-как это до реализации. Потоки на C++ никогда не являются текстовыми потоками в смысле Java, а строки C++ не являются строками в смысле Java. Если вам нужна настоящая строка Unicode, вы можете посмотреть на ICU library.