You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by "Martin Sebor (JIRA)" <ji...@apache.org> on 2007/09/07 16:29:31 UTC
[jira] Updated: (STDCXX-296) std::basic_ostream::operator<<(const
wchar_t*)
[ https://issues.apache.org/jira/browse/STDCXX-296?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Sebor updated STDCXX-296:
--------------------------------
Fix Version/s: 4.3
Too big for 4.2.1, scheduled for 4.3.
> std::basic_ostream::operator<<(const wchar_t*)
> ----------------------------------------------
>
> Key: STDCXX-296
> URL: https://issues.apache.org/jira/browse/STDCXX-296
> Project: C++ Standard Library
> Issue Type: New Feature
> Components: 27. Input/Output
> Affects Versions: 4.1.2, 4.1.3
> Environment: all
> Reporter: Martin Sebor
> Fix For: 4.3
>
> Attachments: ostream.diff
>
>
> There is a pair of generic insertion and extraction operators for const char* (i.e., that make it possible to insert/extract narrow character strings to/from a stream object specialized on wchar_t or even user-defined character type), but there are no such operators for wchar_t (i.e., that would
> make it possible to insert/extract arrays of wchar_t elements to/from narrow streams or streams specialized on a user-defined character type).
> Such operators would provide a useful and convenient interface to the low-level codecvt facet, one that could be used to perform in memory
> codeset conversion just as easily and conveniently as fstream performs such conversions on files. Here's an example of how the insertion
> operator could be used to easily convert from UCS to UTF-8:
> #include <cassert> // for assert()
> #include <cwchar> // for mbstate_t
> #include <locale> // for codecvt, locale
> #include <sstream> // for ostringstream
> int main ()
> {
> std::stringstream ostrm;
> typedef std::codecvt_byname<wchar_t, char, std::mbstate_t> Unicode;
> ostrm.imbue (std::locale (ostrm.getloc (), new Unicode ("UTF-8@UCS")));
> // convert the UCS Greek letters alpha, beta, gamma to UTF-8
> // expected UTF-8 encoding: "\xce\xb1\xce\xb2\xce\xb3"
> ostrm << L"\x3b1\x3b2\x3b3";
> assert ("\xce\xb1\xce\xb2\xce\xb3" == ostrm.str ());
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.