std::wbuffer_convert

Defined in header <locale>
template<class Codecvt,
         class Elem = wchar_t,
         class Tr = std::char_traits<Elem> >
class wbuffer_convert : public std::basic_streambuf<Elem, Tr>
(since C++11)
(deprecated in C++17)

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/UCS2 and UTF-8/UCS4 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

Member type Definition
state_type Codecvt::state_type

Member functions

constructs a new wbuffer_convert
(public member function)
operator=
the copy assignment operator is deleted
(public member function)
destructs the wbuffer_convert and its conversion facet
(public member function)
returns or replaces the underlying narrow stream buffer
(public member function)
returns the current conversion state
(public member function)

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/A
UCS2 c16rtomb(without C11's DR488) codecvt_utf8<char16_t>

codecvt_utf8<wchar_t>(Windows).

codecvt_utf16<char16_t>

codecvt_utf16<wchar_t>(Windows).

UTF-32

mbrtoc32 / c32rtomb.

codecvt<char32_t, char, mbstate_t>
codecvt_utf8<char32_t>
codecvt_utf8<wchar_t>(non-Windows).

codecvt_utf16<char32_t>
codecvt_utf16<wchar_t>(non-Windows).

system wide:
UTF-32(non-Windows)
UCS2(Windows)

mbsrtowcs / wcsrtombs
use_facet<codecvt
<wchar_t, char, mbstate_t>>(locale).

No No
(C++11)(deprecated in C++17)
performs conversions between a wide string and a byte string
(class template)
(C++11)(deprecated in C++17)
converts between UTF-8 and UCS2/UCS4
(class template)
(C++11)(deprecated in C++17)
converts between UTF-8 and UTF-16
(class template)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/locale/wbuffer_convert