Partager via


codecvt Class

Une classe de modèle qui décrit un objet qui peut servir de facette de paramètres régionaux.Il peut contrôler les conversions entre une séquence de valeurs utilisées pour encoder des caractères dans le programme et une séquence de valeurs utilisées pour encoder des caractères en dehors de le programme.

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

Paramètres

  • CharType
    Le type utilisé dans le cadre d'un programme pour encoder des caractères.

  • Byte
    Un type utilisé pour encoder des caractères en dehors d'un programme.

  • StateType
    Un type qui peut être utilisé pour représenter les rapports intermédiaires d'une conversion entre types internes et externes de représentations de caractères.

Notes

La classe de modèle décrit un objet qui peut servir de facette de paramètres régionaux, pour vérifier les conversions entre une séquence de valeurs de type CharType et une séquence de valeurs de type Byte.La classe StateType caractérise la transformation -- et un objet de classe StateType stocke toutes les informations d'état requis pendant une conversion.

L'encodage interne utilise une représentation avec un nombre fixe d'octets pour chaque caractère, généralement type char ou type wchar_t.

Comme pour toute facette de paramètres régionaux, l'objet statique id a une valeur signalée par initiale de zéro.Le premier test d'accéder à sa valeur signalée stocke une seule valeur positive dansid.

Les versions de modèle de do_in et de do_out retournent toujours codecvt_base::noconv.

La bibliothèque C++ standard définit plusieurs spécialisations explicites :

template<>

codecvt<wchar_t, char, mbstate_t>

convertit entre wchar_t et les séquences d' char .

template<>

codecvt<char16_t, char, mbstate_t>

convertit entre les séquences d' char16_t encodées en UTF-16 et les séquences d' char encodées comme UTF-8.

template<>

codecvt<char32_t, char, mbstate_t>

convertit entre les séquences d' char32_t encodées comme UTF-32 (UCS-4) et les séquences d' char encodées comme UTF-8.

0he30td8.collapse_all(fr-fr,VS.110).gifConstructeurs

codecvt

Le constructeur pour les objets de la classe codecvt qui sert de facette de paramètres régionaux pour gérer des conversions.

0he30td8.collapse_all(fr-fr,VS.110).gifTypedef

extern_type

Un type de caractère utilisé pour les représentations externes.

intern_type

Un type de caractère utilisé pour les représentations internes.

state_type

Un type de caractère utilisé pour représenter les rapports intermédiaires pendant les conversions entre les représentations internes et externes.

0he30td8.collapse_all(fr-fr,VS.110).gifFonctions membres

always_noconv

Teste si conversion ne doit pas être effectuée.

do_always_noconv

Une fonction virtuelle appelée pour tester si conversion ne doit pas être effectuée.

do_encoding

Une fonction virtuelle qui teste si l'encodage du flux d' Byte est dépendant d'état, si le taux de Bytes utilisé d' CharTypes produit est constante, et, le cas échéant, détermine la valeur de ce ratio.

do_in

Une fonction virtuelle appelée pour convertir une séquence d' Byteinterne s à une séquence d' CharTypeexterne S.

do_length

Une fonction virtuelle qui détermine le temps d' Bytes d'une séquence donnée de produit externe d' Bytes pas plus qu'un nombre donné de CharTypeinterne s et retourne qui nombre d' ByteS.

do_max_length

Une fonction virtuelle qui retourne le nombre maximal d'octets externes requises pour produire un CharTypeinterne.

do_out

Une fonction virtuelle appelée pour convertir une séquence d' CharTypeinterne s à une séquence d'octets externes.

do_unshift

Une fonction virtuelle appelée pour fournir Bytes est nécessaire dans une conversion d'état dépendant de terminer le dernier caractère dans une séquence d' ByteS.

encodage

Les tests si l'encodage du flux d' Byte est dépendant d'état, si le taux de Bytes utilisé d' CharTypes produit est constante, et, le cas échéant, détermine la valeur de ce ratio.

in

Convertit une représentation externe d'une séquence d' Bytes à une représentation interne d'une séquence d' CharTypeS.

length

Détermine le temps d' Bytes d'une séquence donnée de produit externe d' Bytes pas plus qu'un nombre donné de CharTypeinterne s et retourne qui nombre d' ByteS.

max_length

Retourne le nombre maximal d' Byteexterne s nécessaire pour produire un CharTypeinterne.

out

Convertit une séquence d' CharTypeinterne s à une séquence d' Byteexterne S.

unshift

Fournit Byteexterne s nécessaire dans une conversion d'état dépendant pour terminer le dernier caractère de la séquence d' ByteS.

Configuration requise

en-tête : <locale>

l'espace de noms : DST

Voir aussi

Référence

Sécurité des threads dans la bibliothèque C++ standard

Autres ressources

<locale> membres