std::basic_stringbuf
| Definiert in Header <sstream> |
||
| template< class CharT, |
||
std::basic_stringbuf ist ein std::basic_streambuf, dessen zugeordnete Zeichensequenz eine speicherresidentielle Sequenz beliebiger Zeichen ist, die von einer Instanz von std::basic_string initialisiert werden oder als solche verfügbar gemacht werden kann.
Typische Implementierungen von std::basic_stringbuf speichern ein Objekt vom Typ std::basic_string oder einen äquivalenten änderbaren Sequenzcontainer direkt als Datenmember und verwenden ihn sowohl als gesteuerte Zeichensequenz (das Array, auf das die sechs Zeiger von std::basic_streambuf zeigen) als auch als zugeordnete Zeichensequenz (die Quelle der Zeichen für alle Eingabeoperationen und das Ziel für die Ausgabe).
Zusätzlich speichert eine typische Implementierung einen Datenmember vom Typ std::ios_base::openmode, um den E/A-Modus des zugehörigen Streams anzuzeigen (nur Eingabe, nur Ausgabe, Ein-/Ausgabe, Ende, etc.).
|
Wenn eine Überallokationsstrategie von overflow() verwendet wird, kann ein zusätzlicher High-Watermark-Zeiger gespeichert werden, um das zuletzt initialisierte Zeichen zu verfolgen. |
(seit C++11) |
Mehrere Typedefs für gängige Zeichentypen werden bereitgestellt
| Definiert in Header
<sstream> | |
| Typ | Definition |
std::stringbuf
|
std::basic_stringbuf<char> |
std::wstringbuf
|
std::basic_stringbuf<wchar_t> |
Inhalt |
[bearbeiten] Member types
| Mitgliedertyp | Definition |
char_type
|
CharT |
traits_type
|
Traits; das Programm ist fehlerhaft, wenn Traits::char_type nicht CharT ist. |
int_type
|
Traits::int_type |
pos_type
|
Traits::pos_type |
off_type
|
Traits::off_type |
allocator_type
|
Allocator |
[bearbeiten] Exposition-only Mitglieder
buf |
die std::basic_string<CharT, Traits, Allocator>, die als zugrundeliegender Puffer verwendet wird ((exposition-only member object*) |
mode |
der std::ios_base::openmode des zugeordneten Streams ((exposition-only member object*) |
| initialisiert die Eingabe- und Ausgabesequenzen (exposition-only Member-Funktion*) |
[bearbeiten] Public Memberfunktionen
konstruiert ein basic_stringbuf-Objekt(public member function) | |
| (C++11) |
weist ein basic_stringbuf-Objekt zu(public member function) |
| (C++11) |
tauscht zwei basic_stringbuf-Objekte(public member function) |
| (Destruktor) [virtual] (implizit deklariert) |
destruiert ein basic_stringbuf-Objekt und den von ihm gehaltenen String(virtual public member function) |
| ersetzt oder ruft eine Kopie des zugeordneten Zeichenstrings ab (public member function) | |
| (C++20) |
ruft einen Allocator ab, der dem internen Sequenzcontainer zugeordnet ist (public member function) |
| (C++20) |
ruft eine Ansicht der zugrundeliegenden Zeichensequenz ab (public member function) |
[bearbeiten] Protected Memberfunktionen
| [virtuell] |
gibt das nächste in der Eingabesequenz verfügbare Zeichen zurück (virtual protected member function) |
| [virtuell] |
legt ein Zeichen zurück in die Eingabesequenz (virtual protected member function) |
| [virtuell] |
hängt ein Zeichen an die Ausgabesequenz an (virtual protected member function) |
| [virtuell] |
versucht, die gesteuerte Zeichensequenz durch ein Array zu ersetzen (virtual protected member function) |
| [virtuell] |
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beidem neu, unter Verwendung relativer Adressierung (virtual protected member function) |
| [virtuell] |
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beidem neu, unter Verwendung absoluter Adressierung (virtual protected member function) |
[bearbeiten] Nicht-Memberfunktionen
| spezialisiert den Algorithmus std::swap (Funktionsvorlage) |
Geerbt von std::basic_streambuf
Membertypen
| Mitgliedertyp | Definition |
char_type
|
CharT |
traits_type
|
Traits; das Programm ist fehlerhaft, wenn Traits::char_type nicht CharT ist. |
int_type
|
Traits::int_type |
pos_type
|
Traits::pos_type |
off_type
|
Traits::off_type |
Memberfunktionen
| [virtuell] |
zerstört das basic_streambuf-Objekt(virtuelle öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) |
Lokale | |
| ändert die zugeordnete Locale und ruft imbue() auf (öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) | |
| holt eine Kopie der zugeordneten Locale (öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) | |
Positionierung | |
| ruft setbuf() auf (öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) | |
| ruft seekoff() auf (öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) | |
| ruft seekpos() auf (öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) | |
| ruft sync() auf (öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) | |
Get-Bereich | |
| holt die Anzahl der im Get-Bereich sofort verfügbaren Zeichen (öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) | |
| bewegt die Eingabesequenz vorwärts und liest dann ein Zeichen, ohne erneut vorzurücken (öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) | |
| (in C++17 entfernt) |
liest ein Zeichen aus der Eingabesequenz und rückt die Sequenz vor (öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) |
| liest ein Zeichen aus der Eingabesequenz, ohne die Sequenz vorzurücken (öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) | |
| ruft xsgetn() auf (öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) | |
Put-Bereich | |
| schreibt ein Zeichen in den Put-Bereich und rückt den nächsten Zeiger vor (öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) | |
| ruft xsputn() auf (öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) | |
Putback | |
| legt ein Zeichen zurück in die Eingabesequenz (öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) | |
| verschiebt den nächsten Zeiger in der Eingabesequenz um eins zurück (öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) | |
Geschützte Memberfunktionen
konstruiert ein basic_streambuf-Objekt(geschützte Member-Funktion) | |
| (C++11) |
ersetzt ein basic_streambuf-Objekt(geschützte Member-Funktion) |
| (C++11) |
tauscht zwei basic_streambuf-Objekte(geschützte Member-Funktion) |
Lokale | |
| [virtuell] |
reagiert auf eine Änderung der zugeordneten Locale (virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) |
Positionierung | |
| [virtuell] |
ersetzt den Puffer durch ein benutzerdefiniertes Array, falls zulässig (virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) |
| [virtuell] |
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beidem neu, unter Verwendung relativer Adressierung (virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) |
| [virtuell] |
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beidem neu, unter Verwendung absoluter Adressierung (virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) |
| [virtuell] |
synchronisiert die Puffer mit der zugeordneten Zeichensequenz (virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) |
Get-Bereich | |
| [virtuell] |
holt die Anzahl der für die Eingabe in der zugeordneten Eingabesequenz verfügbaren Zeichen, falls bekannt (virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) |
| [virtuell] |
liest Zeichen aus der zugeordneten Eingabesequenz in den Get-Bereich (virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) |
| [virtuell] |
liest Zeichen aus der zugeordneten Eingabesequenz in den Get-Bereich und rückt den nächsten Zeiger vor (virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) |
| [virtuell] |
liest mehrere Zeichen aus der Eingabesequenz (virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) |
| gibt einen Zeiger auf den Anfang, das aktuelle Zeichen und das Ende des Get-Bereichs zurück (geschützte Member-Funktion) | |
| rückt den nächsten Zeiger in der Eingabesequenz vor (geschützte Member-Funktion) | |
| positioniert die Zeiger für Anfang, nächsten und Ende der Eingabesequenz neu (geschützte Member-Funktion) | |
Put-Bereich | |
| [virtuell] |
schreibt mehrere Zeichen in die Ausgabesequenz (virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) |
| [virtuell] |
schreibt Zeichen aus dem Put-Bereich in die zugeordnete Ausgabesequenz (virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) |
| gibt einen Zeiger auf den Anfang, das aktuelle Zeichen und das Ende des Put-Bereichs zurück (geschützte Member-Funktion) | |
| rückt den nächsten Zeiger der Ausgabesequenz vor (geschützte Member-Funktion) | |
| positioniert die Zeiger für Anfang, nächsten und Ende der Ausgabesequenz neu (geschützte Member-Funktion) | |
Putback | |
| [virtuell] |
legt ein Zeichen in die Eingabesequenz zurück, möglicherweise unter Änderung der Eingabesequenz (virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) |