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.
Konstruktory
Konstruktor pro objekty třídy codecvt , který slouží jako podmínka národního prostředí pro zpracování převody. |
Funkce TypeDef
Znak typu používané pro vnější zastoupení. |
|
Typ znaku pro vnitřní reprezentace. |
|
Znak typu reprezentuje mezilehlé stavy při převodech mezi interní a externí zastoupení. |
Funkce členů
Ověřuje, zda je nutné provést žádné převody. |
|
Virtuální funkce volána otestovat, zda je nutné provést žádné převody. |
|
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. |
|
Virtuální funkce volána převést posloupnost vnitřních Bytes pořadím externí CharTypes. |
|
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. |
|
Virtuální funkci, která vrací maximální počet bajtů externí potřebné k jedné vnitřní CharType. |
|
Virtuální funkce volána převést posloupnost vnitřních CharTypes pořadím externí bajtů. |
|
Virtuální funkce volána poskytnout Bytev převodu závislé státu potřebné k dokončení poslední znak v posloupnosti s Bytes. |
|
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. |
|
Převede externí zobrazení posloupnosti Bytes interní reprezentací sekvence CharTypes. |
|
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. |
|
Vrátí maximální počet externích Bytepotřebné k jeden interní s CharType. |
|
Převádí posloupnosti vnitřní CharTypes pořadím externí Bytes. |
|
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++