Поделиться через


Класс wstring_convert

Шаблон wstring_convert класса выполняет преобразования между широкой строкой и строкой байтов.

Синтаксис

template <class Codecvt, class Elem = wchar_t>
class wstring_convert

Параметры

Codecvt
Аспект языкового стандарта, представляющий объект преобразования.

Elem
Тип двухбайтового элемента.

Замечания

Шаблон класса описывает объект, который управляет преобразованиями между широкими строковыми объектами класса и объектами строк байтов класса std::basic_string<Elem> std::basic_string<char> (также известными как std::string). Шаблон класса определяет типы wide_string и byte_string синонимы для этих двух типов. Преобразование между последовательностями значений Elem (хранятся в объекте wide_string) и многобайтовыми последовательностями (хранятся в объекте byte_string) выполняется объектом класса Codecvt<Elem, char, std::mbstate_t>, который соответствует требованиям аспекта стандартного преобразования кода std::codecvt<Elem, char, std::mbstate_t>.

Объект этого шаблона класса хранит:

  • Однобайтовую строку для отображения при ошибках

  • Двухбайтовую строку для отображения при ошибках

  • Указатель на назначенный объект преобразования (высвобождается при уничтожении объекта wbuffer_convert)

  • Объект состояния для преобразования типа state_type

  • Счетчик преобразований

Конструкторы

Конструктор Description
wstring_convert Создает объект типа wstring_convert.

Определения типов

Введите имя Description
byte_string Тип, представляющий однобайтную строку.
wide_string Тип, представляющий двухбайтную строку.
state_type Тип, представляющий состояние преобразования.
int_type Тип, представляющий целое число.

Функции элементов

Функция-член Description
from_bytes Преобразует строку однобайтовых символов в строку двухбайтовых символов.
to_bytes Преобразует двухбайтовую строку в однобайтовую.
converted Возвращает количество успешных преобразований.
state Возвращает объект, представляющий состояние преобразования.

Требования

Заголовок:<языковой стандарт>

Пространство имен: std

wstring_convert::byte_string

Тип, представляющий однобайтную строку.

typedef std::basic_string<char> byte_string;

Замечания

Тип является синонимом std::basic_string<char>.

wstring_convert::converted

Возвращает количество успешных преобразований.

size_t converted() const;

Возвращаемое значение

Число успешных преобразований.

Замечания

Число успешных преобразований хранится в объекте счетчика преобразований.

wstring_convert::from_bytes

Преобразует строку однобайтовых символов в строку двухбайтовых символов.

wide_string from_bytes(char Byte);
wide_string from_bytes(const char* ptr);
wide_string from_bytes(const byte_string& Bstr);
wide_string from_bytes(const char* first, const char* last);

Параметры

Byte
Последовательность одноэлементных байт для преобразования.

ptr
Последовательность символов в стиле С, оканчивающаяся нулем, для преобразования.

Bstr
Строка byte_string для преобразования.

first
Первый символ в диапазоне символов для преобразования.

last
Последний символ в диапазоне символов для преобразования.

Возвращаемое значение

Объект строки двухбайтовых символов, полученный в результате преобразования.

Замечания

Если объект состояния преобразования не был создан с явным значением, он имеет значение по умолчанию (начальное состояние преобразования) перед началом преобразования. В противном случае он остается неизменным.

Число успешно преобразованных входных элементов сохраняется в объекте счетчика преобразований. При отсутствии ошибок преобразования функция-член возвращает преобразованную двухбайтовую строку. В противном случае, если объект был создан с помощью инициализатора сообщения об ошибке в двухбайтовой строке, функция-член возвращает объект сообщения об ошибке в двухбайтовой строке. В противном случае функция-член создает объект класса range_error.

wstring_convert::int_type

Тип, представляющий целое число.

typedef typename wide_string::traits_type::int_type int_type;

Замечания

Тип является синонимом wide_string::traits_type::int_type.

wstring_convert::state

Возвращает объект, представляющий состояние преобразования.

state_type state() const;

Возвращаемое значение

Объект состояния преобразования, который представляет состояние преобразования.

Замечания

wstring_convert::state_type

Тип, представляющий состояние преобразования.

typedef typename Codecvt::state_type state_type;

Замечания

Тип описывает объект, который может представлять состояние преобразования. Тип является синонимом Codecvt::state_type.

wstring_convert::to_bytes

Преобразует двухбайтовую строку в однобайтовую.

byte_string to_bytes(Elem Char);
byte_string to_bytes(const Elem* Wptr);
byte_string to_bytes(const wide_string& Wstr);
byte_string to_bytes(const Elem* first, const Elem* last);

Параметры

Char
Расширенный символ для преобразования.

Wptr
Последовательность в стиле C, оканчивающаяся нулем, начинающаяся с wptr, для преобразования.

Wstr
Строка wide_string для преобразования.

first
Первый элемент в диапазоне преобразуемых элементов.

last
Последний элемент в диапазоне преобразуемых элементов.

Замечания

Если объект состояния преобразования не был создан с явным значением, он имеет значение по умолчанию (начальное состояние преобразования) перед началом преобразования. В противном случае он остается неизменным.

Число успешно преобразованных входных элементов сохраняется в объекте счетчика преобразований. При отсутствии ошибок преобразования, функция-член возвращает преобразованную однобайтовую строку. В противном случае, если объект был создан с помощью инициализатора сообщения об ошибке в однобайтовой строке, функция-член возвращает объект сообщения об ошибке в однобайтовой строке. В противном случае функция-член создает объект класса range_error.

wstring_convert::wide_string

Тип, представляющий двухбайтную строку.

typedef std::basic_string<Elem> wide_string;

Замечания

Тип является синонимом std::basic_string<Elem>.

wstring_convert::wstring_convert

Создает объект типа wstring_convert.

wstring_convert(Codecvt *Pcvt = new Codecvt);
wstring_convert(Codecvt *Pcvt, state_type _State);
wstring_convert(const byte_string& _Berr, const wide_string& Werr = wide_string());

Параметры

*Pcvt
Объект типа Codecvt для выполнения преобразования.

_Государство
Объект типа state_type, представляющий состояние преобразования.

_Berr
Объект byte_string для отображения ошибок.

Werr
Объект wide_string для отображения ошибок.

Замечания

Первый конструктор сохраняет Pcvt_arg в объекте преобразования