codecvt Class
Eine Vorlagenklasse, die ein Objekt beschrieben wird, das als Gebietsschemafacet dienen kann.Es ist in der Lage, Konvertierungen zwischen einer Sequenz von Werten zu steuern, die verwendet werden, um Zeichen innerhalb des Programms und einer Sequenz von Werten zu codieren, die verwendet werden, um Zeichen außerhalb des Programms zu codieren.
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();
};
Parameter
CharType
Der Typ verwendet innerhalb eines Programms, um Zeichen zu codieren.Byte
Ein Typ verwendet, um Zeichen außerhalb eines Programms zu codieren.StateType
Ein Typ, der verwendet werden kann, um zwischen Bedingungen einer Konvertierung zwischen den Typen von internen und externen Zeichendarstellungen darzustellen.
Hinweise
Die Vorlagenklasse beschreibt ein Objekt, das als Gebietsschemafacet dienen kann, um Konvertierungen zwischen einer Sequenz von Werten des Typs CharType und einer Sequenz von Werten des Typs Byte zu steuern.Die Klasse StateType kennzeichnet die Transformation -- und ein Objekt der Klasse StateType speichert alle erforderlichen Zustandsinformationen während einer Konvertierung.
Die interne Codierung verwendet eine Darstellung mit einer festen Anzahl von Bytes pro Zeichen, normalerweise entweder Typ char oder Typ wchar_t.
Wie bei jedem Gebietsschemafacet, hat das statische Objekt id einen ursprünglichen gespeicherten Wert Null.Der erste Versuch, auf dessen gespeicherten Wert zuzugreifen speichert einen eindeutigen positiven Wert in id.
Die Vorlagenversionen von do_in und von do_out geben immer codecvt_base::noconv zurück.
Das C++-Standardbibliothek definiert mehrere explizite Spezialisierungen:
template<>
codecvt<wchar_t, char, mbstate_t>
Wird zwischen wchar_t und char Sequenzen.
template<>
codecvt<char16_t, char, mbstate_t>
Wird zwischen char16_t Sequenzen, die als UTF-16 codiert werden und char ordnet codiertes als UTF-8 sequenziell.
template<>
codecvt<char32_t, char, mbstate_t>
Wird zwischen char32_t Sequenzen, die als UTF-32 (UCS-4) codiert werden und char ordnet codiertes als UTF-8 sequenziell.
Konstruktoren
Der Konstruktor für die Objekte der Klasse codecvt diese dient als Gebietsschemafacet, Konvertierungen zu behandeln. |
Typedefs
Ein Schrifttyp, der für externe Darstellungen verwendet wird. |
|
Ein Schrifttyp, der für internen Darstellungen verwendet wird. |
|
Ein Schrifttyp, der verwendet wird, um zwischen Zustände während der Konvertierungen zwischen den internen und externen Darstellungen darzustellen. |
Memberfunktionen
Testet, ob keine Konvertierungen ausgeführt werden müssen. |
|
Eine virtuelle Funktion aufgerufen, um zu testen, ob keine Konvertierungen ausgeführt werden müssen. |
|
Eine virtuelle Funktion, die prüft, wenn die Codierung des Byte Streams Zustandsabhängiges element ist, ob das Verhältnis zwischen der Byte s, das verwendet werden und dem CharType s, das erzeugt wird, konstant ist und der in diesem Fall den Wert dieses Verhältnisses. |
|
Eine virtuelle Funktion aufgerufen, um eine Sequenz von internem Byte s zu einer Sequenz von externen CharType S. zu konvertieren. |
|
Eine virtuelle Funktion, die bestimmt, wievieles Byte s aus einer angegebenen Sequenz externen Erzeugnisses Byte s nicht mehr als eine angegebene Anzahl von internem CharType s und gibt die Anzahl der Byte S. |
|
Eine virtuelle Funktion, die die maximale Anzahl von externen Bytes erforderlich, ein internes CharType zu erzeugen zurückgibt. |
|
Eine virtuelle Funktion aufgerufen, um eine Sequenz von internem CharType s zu einer Sequenz von externen Bytes zu konvertieren. |
|
Eine virtuelle Funktion aufgerufen, um das Byte s bereitzustellen ist in einer Konvertierung Zustandabhängigen des Elements, um das letzte Zeichen in einer Sequenz von Byte S. abzuschließen. |
|
Prüft, ob die Codierung des Byte Streams Zustandsabhängiges element ist, ob das Verhältnis zwischen der Byte s, das verwendet werden und dem CharType s, das erzeugt wird, konstant ist und der in diesem Fall den Wert dieses Verhältnisses. |
|
Konvertiert eine externe Darstellung einer Sequenz von Byte s zu einer internen Darstellung einer Sequenz von CharType S. |
|
Bestimmt, wievieles Byte s aus einer angegebenen Sequenz externen Erzeugnisses Byte s nicht mehr als eine angegebene Anzahl von internem CharType s und gibt die Anzahl der Byte S. |
|
Gibt die maximale Anzahl von externen Byte zurück s, das erforderlich ist, um ein internes CharType zu erzeugen. |
|
Konvertiert eine Sequenz von internem CharType s zu einer Sequenz von externen Byte S. |
|
Stellt die externen Bytes, die in einer Konvertierung des Zustandabhängigen Elements erforderlich sind, um das letzte Zeichen in der Sequenz von Bytes abzuschließen. |
Anforderungen
Header: <locale>
Namespace: std
Siehe auch
Referenz
Threadsicherheit in der C++-Standardbibliothek