Namespaces
Variants

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

From cppreference.net
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 stärksten abgeleiteten Klasse auf.
2) Wenn die durch diese codecvt -Facette repräsentierte Kodierung zustandsabhängig ist und state einen Konvertierungszustand darstellt, der nicht der anfängliche Schaltzustand ist, werden die Zeichen geschrieben, die notwendig sind, um zum anfänglichen Schaltzustand 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 Zeichen nach dem letzten geschriebenen Zeichen zu zeigen.

Inhaltsverzeichnis

Rückgabewert

Ein Wert vom Typ std::codecvt_base::result , der den Erfolgsstatus wie folgt anzeigt:

ok alle notwendigen Zeichen wurden geschrieben. state repräsentiert nun den initialen Schaltzustand
partial nicht genügend Platz im Ausgabepuffer. to_next == to_end
error ein nicht spezifizierter Fehler ist aufgetreten
noconv die Kodierung ist zustandsunabhängig, keine Abschlusssequenz erforderlich

Hinweise

Diese Funktion wird aufgerufen von std::basic_filebuf::close() und in anderen Situationen, wenn eine zustandsabhängige Multibyte-Zeichensequenz abgeschlossen wird.

Beispiel

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
durfte kein Zeichen schreiben
nicht erforderlich
LWG 380 C++98 die Bedeutung von partial war 'mehr Zeichen müssen
zur Vervollständigung bereitgestellt werden', aber es wird kein Zeichen bereitgestellt
korrigiert zur Angabe von
unzureichendem Pufferplatz
LWG 381 C++98 state musste nicht gültig sein, und
error wurde zurückgegeben, wenn state ungültig war
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
durfte kein Zeichen schreiben
nicht erforderlich
LWG 665 C++98 std:: codecvt < char , char , std:: mbstate_t > :: do_unshift
musste noconv zurückgeben
nicht erforderlich

Siehe auch

wandelt ein Breitzeichen in seine Multibyte-Darstellung um, unter Berücksichtigung des Zustands
(Funktion)
[virtual]
konvertiert eine Zeichenkette von InternT zu ExternT , beispielsweise beim Schreiben in eine Datei
(geschützte virtuelle Member-Funktion)