std::wbuffer_convert - cppreference.com

From cppreference.com

template<classCodecvt,classElem=wchar_t,classTr=std::char_traits<Elem>>classwbuffer_convert:publicstd::basic_streambuf<Elem,Tr>(since C++11)
(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

.

Member types

Type Definition state_typeCodecvt::state_typeData members

Member Description std::streambuf*bufptra pointer to the underlying byte stream buffer
(exposition-only member object*)Codecvt*cvtptra pointer to the allocated conversion object
(exposition-only member object*)state_typecvtstatethe conversion state object
(exposition-only member object*)Member functions

constructs a new wbuffer_convert
(public member function)

[edit]

operator=

the copy assignment operator is deleted
(public member function)destructs the wbuffer_convert and its conversion facet
(public member function)

[edit]

returns or replaces the underlying narrow stream buffer
(public member function)

[edit]

returns the current conversion state
(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>

codecvt_utf8_utf16

<char16_t>

codecvt_utf8_utf16

<char32_t>

codecvt_utf8_utf16

<wchar_t>

N/AUCS-2

c16rtomb

(without C11's DR488)

codecvt_utf8

<char16_t>

codecvt_utf16

<char16_t>UTF-32

mbrtoc32

/

c32rtomb

codecvt

<char32_t,char,mbstate_t>

codecvt_utf8

<char32_t>

codecvt_utf16

<char32_t>

system wchar_t: UTF-32 (non-Windows)
UCS-2 (Windows)

mbsrtowcs

/

wcsrtombs

use_facet

<

codecvt

<wchar_t,char,mbstate_t>>(

locale

)

codecvt_utf8

<wchar_t>

codecvt_utf16

<wchar_t>(C++11)(deprecated in C++17)(removed in C++26)

performs conversions between a wide string and a byte string
(class template)

[edit]

(C++11)(deprecated in C++17)(removed in C++26)

converts between UTF-8 and UCS-2/UCS-4
(class template)

[edit]

(C++11)(deprecated in C++17)(removed in C++26)

converts between UTF-8 and UTF-16
(class template)

[edit]