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() (die wiederum von basic_istream::unget und basic_istream::putback aufgerufen werden) aufgerufen, wenn entweder
pbackfail() wird ohne Argumente aufgerufen). In dieser Situation ist der Zweck von pbackfail(), das Lesegebiet um ein Zeichen zurückzusetzen, falls die zugeordnete Zeichensequenz dies zulässt (z. B. kann ein dateibezogener Streambuf den Puffer aus einer Datei neu laden, beginnend mit einem Zeichen früher).pbackfail() wird mit dem zurückzustellenden Zeichen aufgerufen). In dieser Situation besteht der Zweck von pbackfail() darin, das Zeichen c in das Lesegebiet an die Position unmittelbar vor basic_streambuf::gptr() zu legen und, falls möglich, die zugeordnete Zeichensequenz zu ändern, um diese Änderung widerzuspiegeln. Dies kann das Zurücksetzen des Lesegebiets wie in der ersten Variante beinhalten.Die Standard-Basisklassenversion dieser Funktion tut nichts und gibt in allen Situationen Traits::eof() zurück. Diese Funktion wird von den abgeleiteten Klassen überschrieben: basic_stringbuf::pbackfail, basic_filebuf::pbackfail, strstreambuf::pbackfail und soll von benutzerdefinierten und Drittanbieter-Streamklassen überschrieben werden.
Inhalt |
[bearbeiten] Parameter
| ch | - | Zurückzustellenndes Zeichen oder Traits::eof(), wenn nur ein Zurücksetzen angefordert wird |
[bearbeiten] Rückgabewert
Traits::eof() im Fehlerfall, ein anderer Wert, um Erfolg anzuzeigen. Die Basisklassenversion schlägt immer fehl.
[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 32 | C++98 | Die Aufrufbedingung 'traits::eq(*gptr(),traits::to_char_type(c)) gibt false zurück' passte nicht zur Beschreibung von sputbackc() |
korrigiert, um zu passen die Beschreibung |
[bearbeiten] Siehe auch
| [virtuell] |
Setzt die Eingabesequenz zurück, um ein Zeichen zurückzugeben, ohne die zugehörige Datei zu beeinflussen (virtuelle geschützte Memberfunktion von std::basic_filebuf<CharT,Traits>) |
| [virtuell] |
Gibt ein Zeichen in die Eingabesequenz zurück (virtuelle geschützte Memberfunktion von std::basic_stringbuf<CharT,Traits,Allocator>) |
| [virtuell] |
Setzt die Eingabesequenz zurück, um ein Zeichen zurückzugeben (virtuelle geschützte Memberfunktion von std::strstreambuf) |
| verschiebt den nächsten Zeiger in der Eingabesequenz um eins zurück (öffentliche Memberfunktion) | |
| legt ein Zeichen zurück in die Eingabesequenz (öffentliche Memberfunktion) |