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


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.

0he30td8.collapse_all(ru-ru,VS.110).gifКонструкторы

codecvt

Конструктор для объектов класса codecvt, служащий аспект языкового стандарта обработки преобразования.

0he30td8.collapse_all(ru-ru,VS.110).gifОпределения типов

extern_type

Символьный тип, используемый для внешних представлений.

intern_type

Символьный тип, используемый для внутренних представлений.

state_type

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

0he30td8.collapse_all(ru-ru,VS.110).gifФункции элементов

always_noconv

Проверяет, не следует ли сделать их без преобразований.

do_always_noconv

Виртуальная функция, вызываемая для проверки, не нужно ли сделать их без преобразований.

do_encoding

Виртуальная функция, которая проверяет, если шифрование потока Byte, зависят ли отношение между состояниями, используемым Byte и созданным CharType s, констант и, если да, указывающее значение коэффициента.

do_in

Виртуальная функция, вызываемая для преобразования внутреннего Byte последовательность объектов в последовательности внешнего CharType.

do_length

Виртуальная функция, которая определяет, сколько Byte s из заданной последовательности внешней продукта Byte s не более чем заданное число внутреннего CharType и возвращений, номер Byte.

do_max_length

Виртуальная функция, которая возвращает максимальное число байтов, необходимых внешних, сформировавшего одно внутреннее CharType.

do_out

Виртуальная функция, вызываемая для преобразования внутреннего CharType последовательность внешних s в последовательность байтов.

do_unshift

Необходимости называемого для обеспечения Byte s, необходимые для преобразования состояние- завершения зависимых последний знак в последовательности Byte.

encoding

Тесты, если шифрование потока Byte зависит от состояния, то ли отношение между Byte s, а s, создаваемым CharType констант и, если да, определяющие значение коэффициента.

in

Преобразование внешнее представление последовательности Byte s во внутреннее представление последовательности CharType.

length

Определяет, сколько Byte s из заданной последовательности внешней продукта Byte s не более чем заданное число внутреннего CharType и возвращений, номер Byte.

max_length

Возвращает максимальное число Byte требуемого внешнего s, сформировавшего одно внутреннее CharType.

out

Преобразует последовательность внутреннего CharType s в последовательности внешнего Byte.

unshift

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

Требования

заголовок: <locale>

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

См. также

Ссылки

Потокобезопасность в стандартной библиотеке C++

Другие ресурсы

члены<языковой стандарт>