С++ 03 определяет два типа символов: char и wchar_t. (позволяет игнорировать безумие signed char и unsigned char).
Эти два символа затем применяются к std::basic_string, std::basic_ostream и т.д. как std::string/std::wstring и std::ostream/std::wostream.
В потоках стандартная библиотека также определяет глобальные переменные std::cout и std::wcout.
Новый стандарт С++ 0x определяет еще два типа символов char16_t и char32_t. Однако единственными новыми typedef являются std::u16string и std::u32string.
Почему стандартная поставка a std::u16ostream? Или как насчет std::u32cout?