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]