std::wstring_convert
<locale> 
     class Codecvt,
    class Elem = wchar_t,
    class Wide_alloc = std::allocator <Elem>,
    class Byte_alloc = std::allocator <char>
(deprecated in C++17)
(removed in C++26)
Class template std::wstring_convert performs conversions between byte string std::string  and wide string std::basic_string <Elem>, using an individual code conversion facet Codecvt. std::wstring_convert assumes ownership of the conversion facet, and cannot use a facet managed by a locale.
The standard facets suitable for use with std::wstring_convert are std::codecvt_utf8  for UTF-8/UCS-2 and UTF-8/UCS-4 conversions and std::codecvt_utf8_utf16  for UTF-8/UTF-16 conversions.
[edit] Nested types
byte_string
 std::basic_string <char, std::char_traits <char>, Byte_alloc>
wide_string
 std::basic_string <Elem, std::char_traits <Elem>, Wide_alloc>
state_type
 typename Codecvt::state_type
int_type
 typename wide_string::traits_type::int_type
[edit] Data members
byte_string byte_err_string
 the byte string to display on errors(exposition-only member object*)
wide_string wide_err_string
 the wide string to display on errors(exposition-only member object*)
cvtptr
 a pointer to the allocated conversion object(exposition-only member object*)
state_type cvtstate
 the conversion state object(exposition-only member object*)
[edit] Member functions
(public member function)
[edit] See also
| Character conversions | locale-defined multibyte (UTF-8, GB18030) | UTF-8 | UTF-16 | 
|---|---|---|---|
| UTF-16 | mbrtoc16 / c16rtomb (with C11's DR488) | codecvt <char16_t,char,mbstate_t> | N/A | 
| UCS-2 | c16rtomb (without C11's DR488) | codecvt_utf8 <char16_t> | codecvt_utf16 <char16_t> | 
| UTF-32 | codecvt <char32_t,char,mbstate_t> | codecvt_utf16 <char32_t> | |
| system wchar_t: UTF-32 (non-Windows) | mbsrtowcs / wcsrtombs  | codecvt_utf8 <wchar_t> | codecvt_utf16 <wchar_t> | 
(class template) [edit]
(class template) [edit]
(class template) [edit]