Condividi tramite


codecvt Class

Una classe modello che descrive un oggetto che può fungere dai facet delle impostazioni locali.È possibile controllare le conversioni tra una sequenza di valori utilizzati per codificare i caratteri all'interno del programma e una sequenza di valori utilizzati per codificare i caratteri al di fuori del programma.

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

Parametri

  • CharType
    Il tipo utilizzato in un programma per codificare i caratteri.

  • Byte
    Un tipo utilizzato per codificare i caratteri all'esterno di un programma.

  • StateType
    Un tipo che può essere utilizzato per rappresentare stati intermedi di una conversione tra tipi interni ed esterni di rappresentazioni di caratteri.

Note

La classe modello descrive un oggetto che può fungere da i facet delle impostazioni locali, per controllare le conversioni tra una sequenza di valori di tipo CharType e una sequenza di valori di tipo Byte.La classe StateType offre la trasformazione -- e un oggetto di classe StateType archivia tutte le informazioni necessarie sullo stato durante la conversione.

La codifica interna utilizza una rappresentazione con un numero di byte fisso per carattere, in genere tipo char o tipo wchar_t.

Come con qualsiasi facet delle impostazioni locali, l'oggetto static id ha un valore archiviato iniziale di zero.Il primo tentativo di accesso al valore memorizzato archivia un valorepositivo univoco inid.

Le versioni del modello do_in e do_out restituiscono sempre codecvt_base::noconv.

La libreria standard di C++ definisce varie specializzazioni esplicite:

template<>

codecvt<wchar_t, char, mbstate_t>

conversione tra wchar_t e le sequenze char.

template<>

codecvt<char16_t, char, mbstate_t>

conversione tra sequenze char16_t codificate come UTF-16 e le sequenze char codificate come UTF-8.

template<>

codecvt<char32_t, char, mbstate_t>

conversione tra sequenze char32_t codificate come UTF-32 (UCS-4) e le sequenze char codificate come UTF-8.

0he30td8.collapse_all(it-it,VS.110).gifCostruttori

codecvt

Il costruttore per gli oggetti di classe codecvt che funge dai facet delle impostazioni locali gestire le conversioni.

0he30td8.collapse_all(it-it,VS.110).gifDefinizioni typedef

extern_type

Un tipo di carattere utilizzato per le rappresentazioni esterne.

intern_type

Un tipo di carattere utilizzato per le rappresentazioni interne.

state_type

Un tipo di carattere utilizzato per rappresentare stati intermedi durante conversioni tra le rappresentazioni interne ed esterni.

0he30td8.collapse_all(it-it,VS.110).gifFunzioni membro

always_noconv

Verifica se nessuna conversione deve essere eseguita.

do_always_noconv

Una funzione virtuale denominata per verificare se nessuna conversione deve essere eseguita.

do_encoding

Una funzione virtuale che verifica se la codifica del flusso Byte è dipendente di stato, se il rapporto tra Byteviene utilizzato e CharTypeil prodotto è costante e, in caso affermativo, determina il valore di tale rapporto.

do_in

Una funzione virtuale denominata per convertire una sequenza Byteinterno o a una sequenza CharTypeesterno S.

do_length

Una funzione virtuale che determina la Byteoggetti da una sequenza specificata di prodotti di fuori Byteoggetti non più di un numero specificato CharTypeinterno oggetti e restituisce il numero ByteS.

do_max_length

Una funzione virtuale che restituisce il numero massimo di byte esterni necessari per produrre un CharTypeinterno.

do_out

Una funzione virtuale denominata per convertire una sequenza CharTypeinterno o a una sequenza di byte esterni.

do_unshift

Una funzione virtuale denominata per fornire Bytegli oggetti dispongono necessario in una conversione regole dipendenti dal completamento dell'ultimo carattere in una sequenza ByteS.

codifica

I test se la codifica del flusso Byte è dipendente di stato, se il rapporto tra Byteviene utilizzato e CharTypeil prodotto è costante e, in caso affermativo, determina il valore di tale rapporto.

in

Converte una rappresentazione esterna di una sequenza di oggetti Byteuna rappresentazione interna di una sequenza CharTypeS.

length

Determina la Byteoggetti da una sequenza specificata di prodotti di fuori Byteoggetti non più di un numero specificato CharTypeinterno oggetti e restituisce il numero ByteS.

max_length

Restituisce il numero massimo Byteesterno s necessario per produrre un CharTypeinterno.

out

Converte una sequenza CharTypeinterno o a una sequenza Byteesterno S.

unshift

Fornisce all'esterno Bytes necessario in una conversione stato dipendente per completare l'ultimo carattere della sequenza ByteS.

Requisiti

intestazione: <locale>

Spazio dei nomi: deviazione standard

Vedere anche

Riferimenti

Thread safety della libreria C++ standard

Altre risorse

<impostazioni locali> membri