std::basic_spanbuf
| Definiert in Header <spanstream> |
||
| template< class CharT, |
(seit C++23) | |
std::basic_spanbuf ist ein std::basic_streambuf, dessen zugehörige Zeichensequenz eine speicherresidente Sequenz beliebiger Zeichen ist, die aus einer Instanz von std::span<CharT> initialisiert oder als eine solche verfügbar gemacht werden kann.
std::basic_spanbuf führt E/A auf einem festen Puffer durch und versucht daher nicht, einen neuen Puffer zu erhalten, wenn der zugrunde liegende Puffer erschöpft ist.
Mehrere Typedefs für gängige Zeichentypen werden bereitgestellt
| Definiert in Header
<spanstream> | |
| Typ | Definition |
std::spanbuf
|
std::basic_spanbuf<char> |
std::wspanbuf
|
std::basic_spanbuf<wchar_t> |
Inhalt |
[bearbeiten] Member-Typen
| 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 |
[bearbeiten] Datenelemente
| Member-Name | Definition |
mod (private) |
Ein std::ios_base::openmode, das den Öffnungsmodus speichert. ((exposition-only member object*) |
buf (private) |
Ein std::span<CharT>, der auf den zugrunde liegenden Puffer verweist. ((exposition-only member object*) |
[bearbeiten] Memberfunktionen
Öffentliche Memberfunktionen | |
erstellt ein basic_spanbuf-Objekt(öffentliche Memberfunktion) | |
| (Destruktor) [virtuell] |
zerstört das basic_spanbuf-Objekt(virtuelle öffentliche Memberfunktion) |
weist ein basic_spanbuf-Objekt zu(öffentliche Memberfunktion) | |
tauscht zwei basic_spanbuf-Objekte(öffentliche Memberfunktion) | |
| ruft einen zugrunde liegenden Puffer ab oder initialisiert ihn gemäß dem Modus (öffentliche Memberfunktion) | |
Geschützte Memberfunktionen | |
| [virtuell] |
versucht, die gesteuerte Zeichensequenz durch ein Array zu ersetzen (virtuelle geschützte Memberfunktion) |
| [virtuell] |
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beidem neu, unter Verwendung relativer Adressierung (virtuelle geschützte Memberfunktion) |
| [virtuell] |
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beidem neu, unter Verwendung absoluter Adressierung (virtuelle geschützte Memberfunktion) |
[bearbeiten] Nicht-Member-Funktionen
| 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>) |
[bearbeiten] Hinweise
std::basic_spanbuf besitzt den zugrunde liegenden Puffer nicht.
Es liegt in der Verantwortung des Programmierers sicherzustellen, dass der zugrunde liegende Puffer während seiner Verwendung durch ein std::basic_spanbuf-Objekt in seinem Lebenszyklus existiert. Zusätzliche Synchronisation kann erforderlich sein, wenn mehr als ein Thread denselben zugrunde liegenden Puffer über verschiedene std::basic_spanbuf-Objekte hinweg verwendet.
| Feature-Test-Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_spanstream |
202106L |
(C++23) | std::spanbuf, std::spanstream |
[bearbeiten] Siehe auch
| implementiert rohe String-Geräte (Klassen-Template) | |
| (in C++98 veraltet)(in C++26 entfernt) |
implementiert rohe Zeichen-Array-Geräte (Klasse) |