Freigeben über


codecvt-Klasse

Eine Vorlagenklasse, die ein Objekt beschreibt, das als Gebietsschemafacet dienen kann. Sie ist in der Lage, Konvertierungen zwischen einer Sequenz von Werten zu steuern, mit denen Zeichen innerhalb des Programms codiert werden, und einer Sequenz von Werten, mit denen Zeichen außerhalb des Programms codiert werden.

template<class CharType, class Byte, class StateType>
    class codecvt : public locale::facet, codecvt_base;

Parameter

  • CharType
    Der Typ, der innerhalb eines Programms verwendet wird, um Zeichen zu codieren.

  • Byte
    Ein Typ, mit dem Zeichen außerhalb eines Programms codiert werden.

  • StateType
    Ein Typ, der verwendet werden kann, um Zwischenzustände einer Konvertierung zwischen 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 StateType-Klasse kennzeichnet die Transformation, und ein Objekt der StateType-Klasse speichert alle erforderlichen Zustandsinformationen während einer Konvertierung.

Die interne Codierung verwendet eine Darstellung mit einer festen Anzahl von Byte pro Zeichen, normalerweise entweder vom Typ char oder vom Typ wchar_t.

Wie bei jedem Gebietsschemafacet hat das statische Objekt id einen anfänglichen gespeicherten Wert von NULL. Beim ersten Versuch, auf den gespeicherten Wert zuzugreifen, wird ein eindeutiger positiver Wert inid gespeichert.

Die Vorlagenversionen von do_in und do_out geben immer codecvt_base::noconv zurück.

Die C++- Standardbibliothek definiert einige explizite Spezialisierungen:

template<>

codecvt<wchar_t, char, mbstate_t>

konvertiert wchar_t- und char-Sequenzen.

template<>

codecvt<char16_t, char, mbstate_t>

konvertiert char16_t-Sequenzen, die als UTF-16 codiert sind, und char-Sequenzen, die als UTF-8 codiert sind.

template<>

codecvt<char32_t, char, mbstate_t>

konvertiert char32_t-Sequenzen, die als UTF-32 (UCS-4) codiert sind, und char-Sequenzen, die als UTF-8 codiert sind.

Konstruktoren

codecvt

Der Konstruktor für Objekte der codecvt-Klasse, die als Gebietsschemafacet zur Behandlung von Konvertierungen dient.

Typedefs

extern_type

Ein Zeichentyp, der für externe Darstellungen verwendet wird.

intern_type

Ein Zeichentyp, der für interne Darstellungen verwendet wird.

state_type

Ein Zeichentyp, der verwendet wird, um Zwischenzustände bei Konvertierungen zwischen externen und internen Darstellungen darzustellen.

Memberfunktionen

always_noconv

Testet, ob keine Konvertierungen ausgeführt werden müssen.

do_always_noconv

Eine virtuelle Funktion, die aufgerufen wird, um zu testen, ob keine Konvertierungen ausgeführt werden müssen.

do_encoding

Eine virtuelle Funktion, die testet, ob die Codierung des Byte-Streams zustandsabhängig ist, ob das zwischen den verwendeten Bytes und den CharType-Objekten erstellte Verhältnis konstant ist, und die im positiven Fall den Wert dieses Verhältnisses bestimmt.

do_in

Eine virtuelle Funktion, die aufgerufen wird, um eine Sequenz interner Bytes in eine Sequenz externer CharTypes zu konvertieren.

do_length

Eine virtuelle Funktion, die bestimmt, wie viele Bytes aus einer angegebenen Sequenz externer Bytes nicht mehr als eine angegebene Anzahl von CharType-Objekten ergibt, und die die Anzahl von Bytes zurückgibt.

do_max_length

Eine virtuelle Funktion, die die maximale Anzahl externer Bytes zurückgibt, die erforderlich sind, um ein internes CharType-Objekt zu erzeugen.

do_out

Eine virtuelle Funktion, die aufgerufen wird, um eine Sequenz interner CharType-Objekte in eine Sequenz externer Bytes zu konvertieren.

do_unshift

Eine virtuelle Funktion, die aufgerufen wird, um die Bytes bereitzustellen, die in einer zustandsabhängigen Konvertierung erforderlich sind, um das letzte Zeichen in einer Sequenz von Bytes abzuschließen.

encoding

Testet, ob die Codierung des Byte-Streams zustandsabhängig ist, ob das zwischen den verwendeten Bytes und den CharType-Objekten erstellte Verhältnis konstant ist, und bestimmt im positiven Fall den Wert dieses Verhältnisses.

in

Konvertiert eine externe Darstellung einer Sequenz von Bytes in eine Darstellung einer Sequenz von CharType-Objekten.

length

Bestimmt, wie viele Bytes aus einer angegebenen Sequenz externer Bytes nicht mehr als eine angegebene Anzahl von CharType-Objekten ergibt, und gibt die Anzahl von Bytes zurück.

max_length

Gibt die maximale Anzahl von externen Bytes zurück, die erforderlich ist, um einen internen CharType zu erstellen.

out

Konvertiert eine Sequenz interner CharType-Objekte in eine Sequenz externer Bytes.

unshift

Stellt die externen Bytes bereit, die in einer zustandsabhängigen Konvertierung erforderlich sind, um das letzte Zeichen der Sequenz von Bytes abzuschließen.

Anforderungen

Header: <Gebietsschema>

Namespace: std

Siehe auch

Referenz

<locale>

Codepages

Gebietsschema-Namen, Sprachen und Zeichenfolgen für Länder und Regionen

Threadsicherheit in der C++-Standardbibliothek