Namensräume
Varianten
Aktionen

std::codecvt<InternT,ExternT,StateT>::unshift, do_unshift

Von cppreference.com
< cpp‎ | locale‎ | codecvt
 
 
 
 
 
Definiert in Header <locale>
public:

result unshift( StateT& state, ExternT* to, ExternT* to_end,

                ExternT*& to_next ) const;
(1)
protected:

virtual result do_unshift( StateT& state, ExternT* to, ExternT* to_end,

                           ExternT*& to_next ) const;
(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

[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) [bearbeiten]
[virtuell]
konvertiert eine Zeichenkette von InternT nach ExternT, z. B. beim Schreiben in eine Datei
(virtual protected member function) [bearbeiten]