codecvt Class
Класс шаблона, который описывает объект, который может служить аспект языкового стандарта.Он может отслеживать преобразования между последовательностью значений, используемых для кодирования символов в рамках программы и последовательности значений, используемых для кодирования символы вне программы.
template<class CharType, class Byte, class StateType>
class codecvt
: public locale::facet, codecvt_base {
public:
typedef CharType intern_type;
typedef Byte extern_type;
typedef StateType state_type;
explicit codecvt (size_t _Refs = 0);
result in (
StateType& _State,
const Byte *_First1,
const Byte *_Last1,
const Byte *_Next1,
CharType *_First2,
CharType *_Last2,
CharType *_Next2
);
result out (
StateType& _State,
const Elem *_First1,
const Elem *_Last1,
const Elem *_Next1,
Byte *_First2,
Byte *_Last2,
Byte *_Next2
);
result unshift (
StateType& _State,
Byte *_First2,
Byte *_Last2,
Byte *_Next2
);
bool always_noconv () const throw();
int max_length () const throw();
int length (
const StateType& _State,
const Byte *_First1,
const Byte *_Last1,
size_t _N2
) const throw();
int encoding () const throw();
static locale::id id;
protected:
~codecvt();
virtual result do_in (
StateType& _State,
const Byte *_First1,
const Byte *_Last1,
const Byte *_Next1,
CharType *_First2,
CharType *_Last2,
CharType *_Next2
);
virtual result do_out (
StateType& _State,
const CharType *_First1,
const CharType *_Last1,
const CharType *_Next1,
Byte *_First2,
Byte *_Last2,
Byte *_Next2
);
virtual result do_unshift (
StateType& _State,
Byte *_First2,
Byte *_Last2,
Byte *_Next2
);
virtual bool do_always_noconv () const throw();
virtual int do_max_length () const throw();
virtual int do_encoding () const throw();
virtual int do_length (
const StateType& _State,
const Byte *_First1,
const Byte *_Last1,
size_t _Len2
) const throw();
};
Параметры
CharType
Тип, используемый в рамках программы для кодирования символов.Byte
Тип, используемый для кодирования символы вне программы.StateType
Тип, который может использоваться для представления промежуточных состояние преобразования между внутренними и внешними типами представлений знака.
Заметки
Класс-шаблон описывает объект, который может служить аспект языкового стандарта, чтобы отслеживать преобразования между последовательности значений типа CharType и последовательности значений типа Byte.Класс StateType характеризует преобразование -- объект класса StateType хранит и необходимых сведений о состоянии во время преобразования.
Внутреннее выделение использует представление с фиксированным числом байтов в символ обычно char или тип или тип wchar_t.
Как и с любым аспектом языкового стандарта, статический объект id имеет значение хранится инициалом, которое равно нулю.Первая попытка получить доступ к его сохраненное значение хранит уникальный положительное значение в id.
Версии шаблона do_in и do_out всегда возвращают codecvt_base::noconv.
Стандартная библиотека C++ определяет несколько явных специализаций:
template<>
codecvt<wchar_t, char, mbstate_t>
новообращенные между wchar_t и последовательностями char.
template<>
codecvt<char16_t, char, mbstate_t>
новообращенные между последовательностями char16_t кодированными как UTF-16 и последовательностями char кодированными в виде UTF-8.
template<>
codecvt<char32_t, char, mbstate_t>
новообращенные между последовательностями char32_t кодированными в качестве UTF-32 (UCS-4) и последовательностями char кодированными в виде UTF-8.
Конструкторы
Конструктор для объектов класса codecvt, служащий аспект языкового стандарта обработки преобразования. |
Определения типов
Символьный тип, используемый для внешних представлений. |
|
Символьный тип, используемый для внутренних представлений. |
|
Символьный тип, используемый для представления промежуточных состояния во время преобразования между внутренними и внешними представлениями. |
Функции элементов
Проверяет, не следует ли сделать их без преобразований. |
|
Виртуальная функция, вызываемая для проверки, не нужно ли сделать их без преобразований. |
|
Виртуальная функция, которая проверяет, если шифрование потока Byte, зависят ли отношение между состояниями, используемым Byte и созданным CharType s, констант и, если да, указывающее значение коэффициента. |
|
Виртуальная функция, вызываемая для преобразования внутреннего Byte последовательность объектов в последовательности внешнего CharType. |
|
Виртуальная функция, которая определяет, сколько Byte s из заданной последовательности внешней продукта Byte s не более чем заданное число внутреннего CharType и возвращений, номер Byte. |
|
Виртуальная функция, которая возвращает максимальное число байтов, необходимых внешних, сформировавшего одно внутреннее CharType. |
|
Виртуальная функция, вызываемая для преобразования внутреннего CharType последовательность внешних s в последовательность байтов. |
|
Необходимости называемого для обеспечения Byte s, необходимые для преобразования состояние- завершения зависимых последний знак в последовательности Byte. |
|
Тесты, если шифрование потока Byte зависит от состояния, то ли отношение между Byte s, а s, создаваемым CharType констант и, если да, определяющие значение коэффициента. |
|
Преобразование внешнее представление последовательности Byte s во внутреннее представление последовательности CharType. |
|
Определяет, сколько Byte s из заданной последовательности внешней продукта Byte s не более чем заданное число внутреннего CharType и возвращений, номер Byte. |
|
Возвращает максимальное число Byte требуемого внешнего s, сформировавшего одно внутреннее CharType. |
|
Преобразует последовательность внутреннего CharType s в последовательности внешнего Byte. |
|
Предоставляет внешнее Byte s необходим при преобразовании зависимых состояние- для завершения последний знак в последовательности Byte. |
Требования
заголовок: <locale>
std пространство имен:
См. также
Ссылки
Потокобезопасность в стандартной библиотеке C++