Sdílet prostřednictvím


codecvt Class

Třída šablony, který popisuje objekt, který může sloužit jako podmínka národního prostředí.Je možné převody řízení mezi posloupnost hodnot kódování znaků v programu a posloupnost hodnot kódování znaků mimo program.

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 aplikace používá ke kódování znaků.

  • Byte
    Typ kódování znaků mimo program.

  • StateType
    Typ použitého představující mezilehlé stavy konverze mezi typy vnitřní a vnější reprezentace znaků.

Poznámky

Popisuje šablony třídy objektu, který může sloužit jako Podmínka národního prostředí, provádět převody mezi posloupnost hodnot typu CharType a pořadí hodnot typu Byte.Třída StateType označuje transformaci--a objekt třídy StateType ukládá veškeré informace nezbytné stát během převodu.

Vnitřní kódování používá vyobrazení s pevným počtem bajty na znak, zadejte obvykle char nebo wchar_t.

Stejně jako všechny národní podmínka statický objekt id má uloženy počáteční hodnotu nula.První pokus o přístup k jeho uložená hodnota ukládá jedinečné kladnou hodnotu vid.

Verze šablony do_in a do_out vždy vrátit codecvt_base::noconv.

Standard C++ Library definuje několik explicitní specializace:

template<>

codecvt<wchar_t, char, mbstate_t>

Převede mezi wchar_t a char sekvencí.

template<>

codecvt<char16_t, char, mbstate_t>

Převede mezi char16_t sekvencí kódování UTF-16 a char sekvencí kódování UTF-8.

template<>

codecvt<char32_t, char, mbstate_t>

Převede mezi char32_t sekvencí kódování UTF-32 (UCS-4) a char sekvencí kódování UTF-8.

0he30td8.collapse_all(cs-cz,VS.110).gifKonstruktory

codecvt

Konstruktor pro objekty třídy codecvt , který slouží jako podmínka národního prostředí pro zpracování převody.

0he30td8.collapse_all(cs-cz,VS.110).gifFunkce TypeDef

extern_type

Znak typu používané pro vnější zastoupení.

intern_type

Typ znaku pro vnitřní reprezentace.

state_type

Znak typu reprezentuje mezilehlé stavy při převodech mezi interní a externí zastoupení.

0he30td8.collapse_all(cs-cz,VS.110).gifFunkce členů

always_noconv

Ověřuje, zda je nutné provést žádné převody.

do_always_noconv

Virtuální funkce volána otestovat, zda je nutné provést žádné převody.

do_encoding

Virtuální funkci, která testuje Pokud kódování Byte proud stát závislý, zda je poměr mezi Bytepoužívána a CharTypevyrobené s konstantní a pokud ano, určuje hodnotu poměru.

do_in

Virtuální funkce volána převést posloupnost vnitřních Bytes pořadím externí CharTypes.

do_length

Virtuální funkci, která určuje, kolik Bytes z dané číselné řady vnějších Byteproduktu s ne více než zadaný počet vnitřní CharTypes a vrátí tento počet Bytes.

do_max_length

Virtuální funkci, která vrací maximální počet bajtů externí potřebné k jedné vnitřní CharType.

do_out

Virtuální funkce volána převést posloupnost vnitřních CharTypes pořadím externí bajtů.

do_unshift

Virtuální funkce volána poskytnout Bytev převodu závislé státu potřebné k dokončení poslední znak v posloupnosti s Bytes.

kódování

Zkoušky, pokud kódování Byte proudu stát závislý, zda je poměr mezi Bytepoužívána a CharTypevyrobené s konstantní a pokud ano, určuje hodnotu poměru.

in

Převede externí zobrazení posloupnosti Bytes interní reprezentací sekvence CharTypes.

Délka

Určuje, kolik Bytes z dané číselné řady vnějších Byteproduktu s ne více než zadaný počet vnitřní CharTypes a vrátí tento počet Bytes.

max_length

Vrátí maximální počet externích Bytepotřebné k jeden interní s CharType.

out

Převádí posloupnosti vnitřní CharTypes pořadím externí Bytes.

unshift

Obsahuje externí Bytev převodu závislé státu potřebné k dokončení poslední znak v posloupnosti s Bytes.

Požadavky

Záhlaví: <locale>

Obor názvů: std

Viz také

Referenční dokumentace

Bezpečnostní vlákno v Standardní knihovna C++

Další zdroje

<locale> Členové