std:: basic_spanbuf
|
Definiert im Header
<spanstream>
|
||
|
template
<
class
CharT,
|
(seit C++23) | |
std::basic_spanbuf
ist ein
std::basic_streambuf
, dessen zugeordnete Zeichenfolge eine speicherresidente Folge beliebiger Zeichen ist, die von einer Instanz von
std::
span
<
CharT
>
initialisiert oder als solche verfügbar gemacht werden kann.
std::basic_spanbuf
führt E/A-Operationen auf einem festen Puffer aus und versucht daher nicht, einen neuen Puffer zu beschaffen, wenn der zugrundeliegende Puffer erschöpft ist.
Es werden mehrere Typdefinitionen für gängige Zeichentypen bereitgestellt:
|
Definiert im Header
<spanstream>
|
|
| Typ | Definition |
std::spanbuf
|
std :: basic_spanbuf < char > |
std::wspanbuf
|
std :: basic_spanbuf < wchar_t > |
Inhaltsverzeichnis |
Mitgliedertypen
| 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
|
Datenmitglieder
| Mitgliedername | Definition |
mod
(privat)
|
Ein
std::ios_base::openmode
der den Öffnungsmodus speichert.
( Nur zur Darstellung verwendetes Mitgliedsobjekt* ) |
buf
(privat)
|
Ein
std::
span
<
CharT
>
der auf den zugrundeliegenden Puffer verweist.
( Nur zur Darstellung verwendetes Mitgliedsobjekt* ) |
Memberfunktionen
Öffentliche Elementfunktionen |
|
konstruiert ein
basic_spanbuf
Objekt
(öffentliche Elementfunktion) |
|
|
(destructor)
[virtual]
|
zerstört das
basic_spanbuf
Objekt
(virtuelle öffentliche Elementfunktion) |
weist ein
basic_spanbuf
Objekt zu
(öffentliche Elementfunktion) |
|
tauscht zwei
basic_spanbuf
Objekte
(öffentliche Elementfunktion) |
|
|
erhält oder initialisiert einen zugrundeliegenden Puffer entsprechend des Modus
(öffentliche Elementfunktion) |
|
Geschützte Elementfunktionen |
|
|
[virtual]
|
versucht, die kontrollierte Zeichensequenz durch ein Array zu ersetzen
(virtuelle geschützte Elementfunktion) |
|
[virtual]
|
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beiden unter Verwendung relativer Adressierung neu
(virtuelle geschützte Elementfunktion) |
|
[virtual]
|
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beiden unter Verwendung absoluter Adressierung neu
(virtuelle geschützte Elementfunktion) |
Nicht-Member-Funktionen
|
(C++23)
|
spezialisiert den
std::swap
Algorithmus
(Funktionsschablone) |
Geerbt von std:: basic_streambuf
Membertypen
| Mitgliedtyp | 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 Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
Locales |
|
|
ändert die assoziierte Locale und ruft
imbue
(
)
auf
(öffentliche Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
|
erhält eine Kopie der assoziierten Locale
(öffentliche Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
Positionierung |
|
|
ruft
setbuf
(
)
auf
(öffentliche Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
|
ruft
seekoff
(
)
auf
(öffentliche Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
|
ruft
seekpos
(
)
auf
(öffentliche Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
|
ruft
sync
(
)
auf
(öffentliche Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
Lesebereich |
|
|
ermittelt die Anzahl sofort verfügbarer Zeichen im Lesebereich
(öffentliche Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
|
bewegt die Eingabesequenz vor und liest ein Zeichen ohne erneutes Vorrücken
(öffentliche Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
|
(entfernt in C++17)
|
liest ein Zeichen aus der Eingabesequenz und bewegt die Sequenz vor
(öffentliche Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
liest ein Zeichen aus der Eingabesequenz ohne die Sequenz zu bewegen
(öffentliche Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
|
ruft
xsgetn
(
)
auf
(öffentliche Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
Schreibbereich |
|
|
schreibt ein Zeichen in den Schreibbereich und bewegt den nächsten Zeiger
(öffentliche Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
|
ruft
xsputn
(
)
auf
(öffentliche Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
Zurücklegen |
|
|
legt ein Zeichen zurück in die Eingabesequenz
(öffentliche Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
|
bewegt den nächsten Zeiger in der Eingabesequenz um eine Position zurück
(öffentliche Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
Geschützte Memberfunktionen
konstruiert ein
basic_streambuf
Objekt
(geschützte Elementfunktion) |
|
|
(C++11)
|
ersetzt ein
basic_streambuf
Objekt
(geschützte Elementfunktion) |
|
(C++11)
|
tauscht zwei
basic_streambuf
Objekte aus
(geschützte Elementfunktion) |
Locales |
|
|
[virtual]
|
reagiert auf eine Änderung des assoziierten Locale
(virtuelle geschützte Memberfunktion von
std::basic_streambuf<CharT,Traits>
)
|
Positionierung |
|
|
[virtual]
|
ersetzt den Puffer durch ein benutzerdefiniertes Array, falls erlaubt
(virtuelle geschützte Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beiden neu, unter Verwendung relativer Adressierung
(virtuelle geschützte Memberfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beiden mittels absoluter Adressierung neu
(virtuelle geschützte Memberfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
synchronisiert die Puffer mit der assoziierten Zeichensequenz
(virtuelle geschützte Memberfunktion von
std::basic_streambuf<CharT,Traits>
)
|
Bereich abrufen |
|
|
[virtual]
|
Ermittelt die Anzahl der für die Eingabe verfügbaren Zeichen in der zugehörigen Eingabesequenz, falls bekannt
(virtuelle geschützte Memberfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
Liest Zeichen aus der zugehörigen Eingabesequenz in den Get-Bereich
(virtuelle geschützte Memberfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
Liest Zeichen aus der zugehörigen Eingabesequenz in den Get-Bereich und bewegt den nächsten Zeiger vorwärts
(virtuelle geschützte Memberfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
liest mehrere Zeichen aus der Eingabesequenz
(virtuelle geschützte Memberfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
gibt einen Zeiger auf den Anfang, das aktuelle Zeichen und das Ende des Lesebereichs zurück
(geschützte Elementfunktion) |
|
|
bewegt den nächsten Zeiger in der Eingabesequenz vor
(geschützte Elementfunktion) |
|
|
positioniert die Anfangs-, Nächste- und End-Zeiger der Eingabesequenz neu
(geschützte Elementfunktion) |
|
Put-Bereich |
|
|
[virtual]
|
Schreibt mehrere Zeichen in die Ausgabesequenz
(geschützte virtuelle Memberfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
Schreibt Zeichen in die zugehörige Ausgabesequenz aus dem Put-Bereich
(virtuelle geschützte Memberfunktion 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) |
|
|
bewegt den nächsten Zeiger der Ausgabesequenz vorwärts
(geschützte Elementfunktion) |
|
|
positioniert die Anfangs-, Nächste- und End-Zeiger der Ausgabesequenz neu
(geschützte Elementfunktion) |
|
Putback |
|
|
[virtual]
|
Fügt ein Zeichen zurück in die Eingabesequenz ein und modifiziert möglicherweise die Eingabesequenz
(geschützte virtuelle Memberfunktion von
std::basic_streambuf<CharT,Traits>
)
|
Hinweise
std::basic_spanbuf
besitzt nicht den zugrundeliegenden Puffer.
Es liegt in der Verantwortung der Programmierer, sicherzustellen, dass der zugrundeliegende Puffer sich in seiner Lebensdauer befindet, wenn er von einem
std::basic_spanbuf
-Objekt verwendet wird. Zusätzliche Synchronisierung kann erforderlich sein, wenn mehr als ein Thread denselben zugrundeliegenden Puffer über verschiedene
std::basic_spanbuf
-Objekte bedient.
| Feature-Test-Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_spanstream
|
202106L
|
(C++23) |
std::spanbuf
,
std::spanstream
|
Siehe auch
|
implementiert Roh-String-Device
(Klassen-Template) |
|
|
(veraltet in C++98)
(entfernt in C++26)
|
implementiert Roh-Zeichenarray-Device
(Klasse) |