std::wbuffer_convert
<locale>
class Codecvt,
class Elem = wchar_t,
class Tr = std::char_traits <Elem>
(deprecated in C++17)
(removed in C++26)
std::wbuffer_convert
is a wrapper over stream buffer of type std::basic_streambuf <char> which gives it the appearance of std::basic_streambuf <Elem>. All I/O performed through std::wbuffer_convert
undergoes character conversion as defined by the facet Codecvt
. std::wbuffer_convert
assumes ownership of the conversion facet, and cannot use a facet managed by a locale.
The standard facets suitable for use with std::wbuffer_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.
This class template makes the implicit character conversion functionality of std::basic_filebuf available for any std::basic_streambuf .
[edit] Member types
state_type
Codecvt::state_type
[edit] Data members
bufptr
a pointer to the underlying byte stream buffer(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]