Я работаю с unicode/wide символами, и я пытаюсь создать toString метод (Java:: toString equiv). ostream обработает широкие символы, раз так есть ли способ предупредить потребителя потока, что это - выход unicode из него?
Ни 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 .