Namespaces
Variants

std:: wbuffer_convert

From cppreference.net
Определено в заголовке <locale>
template <

class Codecvt,
class Elem = wchar_t ,
class Tr = std:: char_traits < Elem >

> class wbuffer_convert : public std:: basic_streambuf < Elem, Tr >
(начиная с C++11)
(устарело в C++17)
(удалено в C++26)

std::wbuffer_convert является обёрткой над буфером потока типа std:: basic_streambuf < char > , придающей ему интерфейс std:: basic_streambuf < Elem > . Все операции ввода-вывода, выполняемые через std::wbuffer_convert , проходят преобразование символов в соответствии с определением фасета Codecvt . std::wbuffer_convert принимает владение фасетом преобразования и не может использовать фасет, управляемый локалью.

Стандартные фацеты, подходящие для использования с std::wbuffer_convert — это std::codecvt_utf8 для преобразований UTF-8/UCS-2 и UTF-8/UCS-4, а также std::codecvt_utf8_utf16 для преобразований UTF-8/UTF-16.

Этот шаблон класса делает функциональность неявного преобразования символов из std::basic_filebuf доступной для любого std::basic_streambuf .

Содержание

Типы членов

Тип Определение
state_type Codecvt :: state_type

Члены данных

Участник Описание
std:: streambuf * bufptr указатель на базовый буфер байтового потока
( объект-член только для демонстрации* )
Codecvt * cvtptr указатель на выделенный объект преобразования
( объект-член только для демонстрации* )
state_type cvtstate объект состояния преобразования
( объект-член только для демонстрации* )

Функции-члены

создает новый wbuffer_convert
(публичная функция-член)
operator=
оператор присваивания копированием удален
(публичная функция-член)
уничтожает wbuffer_convert и его фасет преобразования
(публичная функция-член)
возвращает или заменяет базовый узкополосный буфер потока
(публичная функция-член)
возвращает текущее состояние преобразования
(публичная функция-член)

Смотрите также

Преобразования символов
Многобайтовые, определенные локализацией
(UTF-8, GB18030)
UTF-8
UTF-16
UTF-16 mbrtoc16 / c16rtomb (с DR488 из C11)

codecvt < char16_t , char ,mbstate_t >
codecvt_utf8_utf16 < char16_t >
codecvt_utf8_utf16 < char32_t >
codecvt_utf8_utf16 < wchar_t >

Н/П
UCS-2 c16rtomb (без DR488 из C11) 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 >

Системный wchar_t :

UTF-32 (не-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)
выполняет преобразования между широкой строкой и байтовой строкой
(шаблон класса)
(C++11) (deprecated in C++17) (removed in C++26)
преобразует между UTF-8 и UCS-2/UCS-4
(шаблон класса)
(C++11) (deprecated in C++17) (removed in C++26)
преобразует между UTF-8 и UTF-16
(шаблон класса)