Ни ostream
, ни остальная часть C ++ ничего не знают о Юникоде.Обычно вы пишете строковое преобразование в 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 .