Partilhar via


codecvt Class

Uma classe de modelo que descreve um objeto que pode servir como um aspecto da localidade.Pode controlar conversões entre uma seqüência dos valores usados para codificação de caracteres dentro do programa e uma seqüência dos valores usados para codificação de caracteres fora do programa.

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

Parâmetros

  • CharType
    O tipo usado dentro de um programa para a codificação de caracteres.

  • Byte
    Um tipo usado para a codificação de caracteres fora de um programa.

  • StateType
    Um tipo que pode ser usado para representar estados intermediários de uma conversão entre tipos internos e externas de representações de caracteres.

Comentários

A classe de modelo descreve um objeto que pode servir como aspecto da localidade, para controlar conversões entre uma seqüência dos valores do tipo CharType e uma seqüência dos valores do tipo Byte.A classe fornece a transformação StateType -- e um objeto da classe StateType armazena todas as informações do estado necessário durante a conversão.

A codificação usa uma representação interna com um número de bytes fixo pelo caractere, geralmente tipo char ou tipo wchar_t.

Como com qualquer aspecto da localidade, o objeto estático id tem um valor armazenado inicial de zero.a primeira tentativa de acessar seu valor armazenado armazena um valorpositivo exclusivo emid.

As versões do modelo de do_in e de do_out sempre retornam codecvt_base::noconv.

A biblioteca do C++ padrão define vários especializações explícitas:

template<>

codecvt<wchar_t, char, mbstate_t>

converte entre wchar_t e seqüências de char .

template<>

codecvt<char16_t, char, mbstate_t>

converte entre as seqüências de char16_t codificadas como UTF-16 e seqüências de char codificadas como UTF-8.

template<>

codecvt<char32_t, char, mbstate_t>

converte entre as seqüências de char32_t codificadas como UTF-32 UCS-4 () e seqüências de char codificadas como UTF-8.

0he30td8.collapse_all(pt-br,VS.110).gifConstrutores

codecvt

O construtor para objetos de classe codecvt que serve como um aspecto de localidade para manipular conversões.

0he30td8.collapse_all(pt-br,VS.110).gifTypedefs

extern_type

Um caractere de tipo que é usado para representações externos.

intern_type

Um caractere de tipo que é usado para representações internas.

state_type

Um caractere de tipo que é usado para representar estados intermediários durante conversões entre representações internas e externos.

0he30td8.collapse_all(pt-br,VS.110).gifFunções de membro

always_noconv

Testa se nenhuma conversão precisa ser feita.

do_always_noconv

Uma função chamada virtual para testar se nenhuma conversão precisa ser feita.

do_encoding

Uma função virtual que testa se a codificação do fluxo de Byte é dependente de estado, se a taxa entre Bytes usado e CharTypes gerado é constante, e, em caso afirmativo, determina o valor da taxa.

do_in

Uma função chamada virtual para converter uma seqüência de Byteinterno s como uma seqüência de CharTypeexterno S.

do_length

Uma função virtual que determina quanto Bytes de uma determinada seqüência do produto externo de Bytes não mais do que um determinado número de CharTypeinterno s e retorna o número de ByteS.

do_max_length

Uma função virtual que retorna o número máximo de bytes necessários externos gerar um CharTypeinterno.

do_out

Uma função chamada virtual para converter uma seqüência de CharTypeinterno s como uma seqüência de bytes externos.

do_unshift

Uma função chamada virtual para fornecer Byteo usuário em uma conversão de estado dependente de concluir o último caractere em uma seqüência de ByteS.

codificação

Os testes se a codificação do fluxo de Byte é dependente de estado, se a taxa entre Bytes usado e CharTypes gerado é constante, e, em caso afirmativo, determinar o valor da taxa.

em

Converte uma representação externa de uma seqüência de Bytes a uma representação interna de uma seqüência de CharTypeS.

comprimento

Determina quanto Bytes de uma determinada seqüência do produto externo de Bytes não mais do que um determinado número de CharTypeinterno s e retorna o número de ByteS.

max_length

Retorna o número máximo de Byteexterno s necessário gerar um CharTypeinterno.

out

Converte uma seqüência de CharTypeinterno s como uma seqüência de Byteexterno S.

unshift

Fornece Byteexterno s necessário em uma conversão de estado dependente concluir o último caractere na seqüência de ByteS.

Requisitos

Cabeçalho: <locale>

namespace: STD

Consulte também

Referência

Segurança do thread na biblioteca C++ padrão

Outros recursos

<locale> Membros