Scroll to navigation

std::wstring_convert(3) C++ Standard Libary std::wstring_convert(3)


std::wstring_convert - std::wstring_convert


Defined in header <locale>
template< class Codecvt,

class Elem = wchar_t, (since C++11)
class Wide_alloc = std::allocator<Elem>, (deprecated in C++17)
class Byte_alloc = std::allocator<char> >

class wstring_convert;

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/UCS2 and UTF-8/UCS4
conversions and std::codecvt_utf8_utf16 for UTF-8/UTF-16 conversions.

Member types

Member type Definition
byte_string std::basic_string<char, char_traits<char>, Byte_alloc>
wide_string std::basic_string<Elem, char_traits<Elem>, Wide_alloc>
state_type Codecvt::state_type
int_type wide_string::traits_type::int_type

Member functions

constructor constructs a new wstring_convert
(public member function)
operator= the copy assignment operator is deleted
(public member function)
destructor destructs the wstring_convert and its conversion facet
(public member function)
from_bytes converts a byte string into a wide string
(public member function)
to_bytes converts a wide string into a byte string
(public member function)
converted returns the number of characters successfully converted
(public member function)
state returns the current conversion state
(public member function)

See also

Character locale-defined
conversions multibyte UTF-8 UTF-16
(UTF-8, GB18030)
mbrtoc16 / codecvt<char16_t, char, mbstate_t>
UTF-16 c16rtomb(with C11's codecvt_utf8_utf16<char16_t> N/A
DR488) codecvt_utf8_utf16<char32_t>
c16rtomb(without codecvt_utf8<char16_t> codecvt_utf16<char16_t>
UCS2 C11's DR488)
codecvt_utf8<wchar_t>(Windows) codecvt_utf16<wchar_t>(Windows)
codecvt<char32_t, char, mbstate_t> codecvt_utf16<char32_t>
UTF-32 mbrtoc32 / c32rtomb codecvt_utf8<char32_t> codecvt_utf16<wchar_t>(non-Windows)
mbsrtowcs /
system wide: wcsrtombs UTF-32(non-Windows) use_facet<codecvt No No
UCS2(Windows) <wchar_t, char,

wbuffer_convert performs conversion between a byte stream buffer and a
(C++11) wide stream buffer
(deprecated in C++17) (class template)
codecvt_utf8 converts between UTF-8 and UCS2/UCS4
(C++11)(deprecated in C++17) (class template)
codecvt_utf8_utf16 converts between UTF-8 and UTF-16
(C++11)(deprecated in C++17) (class template)