Udostępnij za pośrednictwem


codecvt Class

Klasa szablonu opisującą obiekt, który może służyć jako aspekt ustawień regionalnych.Jest w stanie kontroli konwersje między sekwencja wartości używany do kodowania znaków w programie i sekwencja wartości używany do kodowania znaków spoza programu.

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();
};

Parametry

  • CharType
    Typ używany w programie do kodowania znaków.

  • Byte
    Typ używany do kodowania znaków spoza programu.

  • StateType
    Typ używany do reprezentowania pośrednich stanów konwersja między typami wewnętrznej i zewnętrznej reprezentacji znaków.

Uwagi

Klasa szablonu opisuje obiekt, który może służyć jako locale aspekt, kontrolowanie konwersje między sekwencja wartości typu CharType i sekwencja wartości typu Byte.Klasa StateType charakteryzuje transformacji--i obiekt klasy StateType przechowuje wszystkie informacje o stanie niezbędne podczas konwersji.

Wewnętrzne kodowanie używa reprezentacja ze stałą liczbą bajtów na znak, zwykle albo wpisz char lub wchar_t.

Podobnie jak każdy aspekt locale obiektu statycznego id początkowego przechowywanych wartość zero.Pierwsza próba dostępu do jego wartości przechowywanej przechowuje unikatową wartość dodatnią wid.

Wersji szablonu do_in i do_out zawsze zwraca codecvt_base::noconv.

Standardowa biblioteka języka C++ definiuje kilka jawne specjalności:

template<>

codecvt<wchar_t, char, mbstate_t>

Konwertuje między wchar_t i char sekwencji.

template<>

codecvt<char16_t, char, mbstate_t>

Konwertuje między char16_t sekwencji zakodowany jako UTF-16 i char sekwencji zakodowany jako UTF-8.

template<>

codecvt<char32_t, char, mbstate_t>

Konwertuje między char32_t sekwencji zakodowany jako UTF-32 (UCS-4) i char sekwencji zakodowany jako UTF-8.

0he30td8.collapse_all(pl-pl,VS.110).gifKonstruktory

codecvt

Konstruktor dla obiektów klasy codecvt służy jako aspekt locale obsłużyć konwersji.

0he30td8.collapse_all(pl-pl,VS.110).gifDefinicje TypeDef

extern_type

Typ znaku używanego do zewnętrznej reprezentacji.

intern_type

Typ znaku używanego do reprezentacji wewnętrznej.

state_type

Typ znaku, który jest używana do reprezentowania Państwa pośrednich podczas konwersji między reprezentacji wewnętrznej i zewnętrznej.

0he30td8.collapse_all(pl-pl,VS.110).gifFunkcje składowe

always_noconv

Sprawdza, czy nie konwersje należy wykonać.

do_always_noconv

Potrzeby Sporządzono wirtualnego funkcji o nazwie, aby sprawdzić, czy nie konwersje.

do_encoding

Funkcję wirtualną, sprawdzający Jeoli kodowanie Byte strumień jest Państwo zależnych, czy stosunek między Bytes używane i CharTypes produkowane jest stała i, jeśli tak, określa wartość tego współczynnika.

do_in

Wirtualny funkcja o nazwie przekonwertować sekwencji wewnętrznego Bytes sekwencji zewnętrznych CharTypes.

do_length

Funkcję wirtualną, która określa liczbę Bytes z danej sekwencji zewnętrznych Bytenie więcej niż określoną liczbę wewnętrznego produktu s CharTypes i zwraca ten numer Bytes.

do_max_length

Wirtualny funkcja, która zwraca maksymalną liczbę bajtów zewnętrznych niezbędnych do wyprodukowania jednego wewnętrznego CharType.

do_out

Wirtualny funkcja o nazwie przekonwertować sekwencji wewnętrznego CharTypes sekwencji bajtów zewnętrznych.

do_unshift

Funkcja wirtualny o nazwie zapewnienie Bytes niezbędnych konwersji zależnych od Państwa do zakończenia ostatniego znaku w sekwencji Bytes.

kodowanie

Badania, jeśli kodowanie Byte strumień jest Państwo zależnych, czy stosunek między Bytes używane i CharTypes produkowane jest stała i, jeśli tak, określa wartość tego współczynnika.

w

Konwertuje zewnętrznej reprezentacji sekwencji Bytes do reprezentacji wewnętrznej, sekwencji CharTypes.

długość

Określa, ile Bytes z danej sekwencji zewnętrznych Bytenie więcej niż określoną liczbę wewnętrznego produktu s CharTypes i zwraca ten numer Bytes.

max_length

Zwraca maksymalną liczbę zewnętrznych Byteniezbędnych do wyprodukowania jednego wewnętrznego s CharType.

out

Konwertuje sekwencji wewnętrznego CharTypes sekwencji zewnętrznych Bytes.

unshift

Zapewnia zewnętrznych Bytes niezbędnych konwersji zależnych od Państwa do zakończenia ostatniego znaku w sekwencji Bytes.

Wymagania

Nagłówek: <locale>

Obszar nazw: std

Zobacz też

Informacje

Bezpieczeństwo wątków w standardowa biblioteka języka C++

Inne zasoby

<locale> Członkowie