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.
Construtores
O construtor para objetos de classe codecvt que serve como um aspecto de localidade para manipular conversões. |
Typedefs
Um caractere de tipo que é usado para representações externos. |
|
Um caractere de tipo que é usado para representações internas. |
|
Um caractere de tipo que é usado para representar estados intermediários durante conversões entre representações internas e externos. |
Funções de membro
Testa se nenhuma conversão precisa ser feita. |
|
Uma função chamada virtual para testar se nenhuma conversão precisa ser feita. |
|
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. |
|
Uma função chamada virtual para converter uma seqüência de Byteinterno s como uma seqüência de CharTypeexterno S. |
|
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. |
|
Uma função virtual que retorna o número máximo de bytes necessários externos gerar um CharTypeinterno. |
|
Uma função chamada virtual para converter uma seqüência de CharTypeinterno s como uma seqüência de bytes externos. |
|
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. |
|
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. |
|
Converte uma representação externa de uma seqüência de Bytes a uma representação interna de uma seqüência de CharTypeS. |
|
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. |
|
Retorna o número máximo de Byteexterno s necessário gerar um CharTypeinterno. |
|
Converte uma seqüência de CharTypeinterno s como uma seqüência de Byteexterno S. |
|
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