std::basic_streambuf<CharT,Traits>:: pbackfail
|
protected
:
virtual int_type pbackfail ( int_type c = Traits :: eof ( ) ) ; |
||
Diese Funktion kann nur aufgerufen werden, wenn eine der folgenden Bedingungen erfüllt ist:
- gptr ( ) ist null ,
- gptr ( ) == eback ( ) , oder
- traits :: eq ( traits :: to_char_type ( c ) , gptr ( ) [ - 1 ] ) gibt false zurück.
Diese Funktion wird von den öffentlichen Funktionen sungetc() und sputbackc() aufgerufen (welche wiederum von basic_istream::unget und basic_istream::putback aufgerufen werden), wenn entweder:
pbackfail()
wird ohne Argumente aufgerufen). In dieser Situation besteht der Zweck von
pbackfail()
darin, den Get-Bereich um ein Zeichen zurückzusetzen, falls die zugehörige Zeichensequenz dies erlaubt (z.B. könnte ein dateibasierter streambuf den Puffer erneut aus einer Datei laden, beginnend ein Zeichen früher).
pbackfail()
wird mit dem Zeichen aufgerufen, das zurückgelegt werden soll). In dieser Situation besteht der Zweck von
pbackfail()
darin, das Zeichen
c
im Lesebereich an der Position unmittelbar vor
basic_streambuf::gptr()
zu platzieren und, wenn möglich, die zugehörige Zeichensequenz entsprechend dieser Änderung anzupassen. Dies kann das Zurücksetzen des Lesebereichs wie in der ersten Variante beinhalten.
Die Standard-Basisklassenversion dieser Funktion tut nichts und gibt Traits :: eof ( ) in allen Situationen zurück. Diese Funktion wird von den abgeleiteten Klassen überschrieben: basic_stringbuf::pbackfail , basic_filebuf::pbackfail , strstreambuf::pbackfail , und wird erwartet, dass sie von benutzerdefinierten und Drittanbieter-Bibliotheks-Stream-Klassen überschrieben wird.
Inhaltsverzeichnis |
Parameter
| ch | - | Zeichen, das zurückgestellt werden soll, oder Traits :: eof ( ) wenn nur das Zurückstellen aufgehoben werden soll |
Rückgabewert
Traits :: eof ( ) im Falle eines Fehlers, ein anderer Wert zur Anzeige des Erfolgs. Die Basisklassenversion schlägt immer fehl.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 32 | C++98 |
die Aufrufbedingung '
traits
::
eq
(
*
gptr
(
)
,traits
::
to_char_type
(
c
)
)
gibt false zurück' stimmte nicht mit der Beschreibung von sputbackc() überein |
korrigiert, um mit der
Beschreibung übereinzustimmen |
Siehe auch
|
[virtual]
|
setzt die Eingabesequenz zurück, um ein Zeichen zurückzustellen, ohne die zugehörige Datei zu beeinflussen
(virtuelle geschützte Elementfunktion von
std::basic_filebuf<CharT,Traits>
)
|
|
[virtual]
|
stellt ein Zeichen zurück in die Eingabesequenz
(virtuelle geschützte Elementfunktion von
std::basic_stringbuf<CharT,Traits,Allocator>
)
|
|
[virtual]
|
setzt die Eingabesequenz zurück, um ein Zeichen zurückzustellen
(virtuelle geschützte Elementfunktion von
std::strstreambuf
)
|
|
bewegt den nächsten Zeiger in der Eingabesequenz um eins zurück
(öffentliche Elementfunktion) |
|
|
stellt ein Zeichen zurück in die Eingabesequenz
(öffentliche Elementfunktion) |