basic_streambuf::overflow
Eine geschützte virtuelle Funktion, die aufgerufen, wenn ein neues Zeichen in einem vollständigen Puffer eingefügt wird.
virtual int_type overflow(
int_type _Meta = traits_type::eof( )
);
Parameter
- _Meta
Das in den Puffer eingefügt Zeichen, oder traits_type::EOF.
Rückgabewert
Wenn die Funktion nicht ausführen kann, gibt diese traits_type::eof zurück oder löst eine Ausnahme aus. Andernfalls gibt es traits_type::not_eof zurück (_Meta). Das Standardverhalten ist traits_type::eof, zurückzugeben.
Hinweise
Wenn _Meta ungleich traits_type::eof vergleicht, ermittelt die geschützte virtuelle Memberfunktion, die Element traits_type::to_char_type(_Meta) in den Ausgabestream einzufügen. Sie kann auf verschiedene Möglichkeiten:
Wenn write position verfügbar ist, kann ihr das Element in die Schreibposition speichern und den folgenden Zeiger für den Ausgabepuffer erhöhen.
Sie kann eine Schreibposition bereitstellen, indem sie neuen oder zusätzlichem Speicher des Ausgabepuffer zuordnen.
Es kann eine Schreibposition bereitstellen, indem es, zu externem Ziel, für einige oder alle Elemente zwischen Start und den folgenden Zeigern für den Ausgabepuffer schreibt.
Die virtuelle Sammelfunktion, zusammen mit den unter Synchronisierung und Unterlauf-Funktionen, definiert die Eigenschaften der streambuf-abgeleiteten Klasse. Jede abgeleitete Klasse implementierte Überlauf anders, die Schnittstelle mit der aufrufenden Streamklasse gleich.
Die overflow-Funktion wird am häufigsten über öffentliche streambuf-Funktionen wie sputc und sputn aufgerufen, wenn der Bereich gesetzte voll ist, aber andere Klassen, einschließlich der Streamklassen, können overflow jederzeit aufrufen.
Die Funktion verwendet die gesetzten Zeichen im Bereich zwischen den pbase und pptr Zeiger und initialisiert den gesetzten Bereich. Die overflow-Funktion muss nCh auch nutzen (wenn nCh nicht EOF ist, oder sie beschlösse werden, um dieses Zeichen in den neuen Bereich gesetzten gespeichert, sodass sie beim folgenden Aufruf verwendet wird.
Die Definition von nutzen variiert mit abgeleiteten Klassen. Beispielsweise wird die filebuf-Klasse ihre Zeichen in eine Datei, während die strstreambuf-Klasse diese in den Puffer enthält und (wenn der Puffer festgelegt, während dynamisch), den Puffer auf einen Aufruf erweitert, um überzulaufen. Diese Erweiterung werden, indem dem alten Puffer freigibt und diesen einem neuen, größeren ersetzt. Die Zeiger werden nach Bedarf angepasst.
Anforderungen
Header: <streambuf>
Namespace: std