std::codecvt<InternT,ExternT,StateT>::unshift, do_unshift
Von cppreference.com
| Definiert in Header <locale> |
||
| public: result unshift( StateT& state, ExternT* to, ExternT* to_end, |
(1) | |
| protected: virtual result do_unshift( StateT& state, ExternT* to, ExternT* to_end, |
(2) | |
1) Öffentliche Memberfunktion, ruft die Memberfunktion
do_unshift der am weitesten abgeleiteten Klasse auf.2) Wenn die durch diese
codecvt Facette dargestellte Kodierung zustandsabhängig ist und state einen Konvertierungszustand darstellt, der nicht der anfängliche Umschaltzustand ist, schreibt die Zeichen, die notwendig sind, um zum anfänglichen Umschaltzustand zurückzukehren. Die Zeichen werden in ein Zeichenarray geschrieben, dessen erstes Element durch to gezeigt wird. Es werden nicht mehr als to_end - to Zeichen geschrieben. Der Parameter to_next wird aktualisiert, um auf das letzte geschriebene Zeichen zu zeigen.Inhalt |
[bearbeiten] Rückgabewert
Ein Wert vom Typ std::codecvt_base::result, der den folgenden Erfolgstatus angibt:
ok
|
Alle notwendigen Zeichen wurden geschrieben. state repräsentiert nun den anfänglichen Umschaltzustand |
partiell
|
Nicht genügend Platz im Ausgabepuffer. to_next == to_end |
error
|
Ein nicht spezifizierter Fehler ist aufgetreten |
noconv
|
Die Kodierung ist nicht zustandsabhängig, keine Terminierungssequenz erforderlich |
[bearbeiten] Hinweise
Diese Funktion wird von std::basic_filebuf::close() und in anderen Situationen beim Abschließen einer zustandsabhängigen Multibyte-Zeichensequenz aufgerufen.
[bearbeiten] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[bearbeiten] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 305 | C++98 | std::codecvt<wchar_t, char, std::mbstate_t>::do_unshift musste keine Zeichen schreiben |
nicht erforderlich. |
| LWG 380 | C++98 | die Bedeutung der Rückgabe von partial war 'weitere Zeichen müssen zur Vervollständigung der Terminierung geliefert werden', aber es wird kein Zeichen geliefert |
korrigiert zu Anzeige unzureichenden Pufferplatz |
| LWG 381 | C++98 | state musste nicht gültig sein, und error wird zurückgegeben, wenn state ungültig ist |
state muss gültig sein, und die Rückgabe von error zeigt einen Fehler an |
| LWG 664 | C++98 | std::codecvt<char, char, std::mbstate_t>::do_unshift musste keine Zeichen schreiben |
nicht erforderlich. |
| LWG 665 | C++98 | std::codecvt<char, char, std::mbstate_t>::do_unshift musste noconv zurückgeben |
nicht erforderlich. |
[bearbeiten] Siehe auch
| konvertiert ein Wide-Zeichen in seine Multibyte-Darstellung, gegeben den Zustand (Funktion) | |
| [virtuell] |
konvertiert eine Zeichenkette von InternT nach ExternT, z. B. beim Schreiben in eine Datei(virtual protected member function) |