[ 
https://issues.apache.org/jira/browse/STDCXX-296?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martin Sebor updated STDCXX-296:
--------------------------------

              Severity: Usability
     Affects Version/s: 4.1.4
                        4.2.0
                        4.2.1
    Remaining Estimate: 24h
     Original Estimate: 24h

Added all releases to the list of affected versions and estimated effort.

> 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, 4.1.4, 4.2.0, 4.2.1
>         Environment: all
>            Reporter: Martin Sebor
>            Assignee: Martin Sebor
>             Fix For: 4.3
>
>         Attachments: ostream.diff
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> 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 ("[EMAIL 
> PROTECTED]")));
>     // 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.

Reply via email to