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]