Freigeben über


basic_streambuf::overflow

Eine geschützte virtuelle Funktion, die aufgerufen werden kann, wenn ein neues Zeichen in einen vollständigen Puffer eingefügt wird.

virtual int_type overflow(
   int_type _Meta = traits_type::eof( )
);

Parameter

  • _Meta
    Das Zeichen in den Puffer einzufügen, oder traits_type::EOF.

Rückgabewert

Wenn die Funktion nicht erfolgreich ausgeführt werden kann, gibt sie traits_type::eof zurück und löst eine Ausnahme aus.Andernfalls wird traits_type::not_eof zurück (_Meta).Das Standardverhalten ist, traits_type::eof zurückzugeben.

Hinweise

Wenn _Meta nicht gleich traits_type::eof vergleicht, ermittelt die geschützte virtuelle Memberfunktion, das Element traits_type::to_char_type(_Meta) in den Ausgabestream einzufügen.Sie kann auf verschiedene Arten erfolgen:

  • Wenn write position verfügbar ist, kann das Element in die Schreibposition speichern und den folgenden Zeiger für den Ausgabepuffer erhöhen.

  • Sie kann eine Schreibposition bereitstellen, indem sie neue oder zusätzlichen Speicher für den Ausgabepuffer zuordnen.

  • Es kann eine Schreibposition bereitstellen, indem Sie, zu externem Ziel, zu einigen oder allen Elementen zwischen Start und den folgenden Zeigern für den Ausgabepuffer schreibt.

Die virtuelle Sammelfunktion, zusammen mit den Synchronisierung und Unterlauf-Funktionen definiert, die Eigenschaften der streambuf-abgeleiteten Klasse.Jede abgeleitete Klasse implementierte Überlauf anders, aber die Schnittstelle mit der aufrufenden Streamklasse ist gleich.

Die overflow-Funktion wird häufig über öffentliche streambuf-Funktionen wie sputc und sputn aufgerufen, wenn der Bereich put voll ist, andere Klassen, einschließlich der Streamklassen, können overflow jederzeit aufrufen.

Die Funktion verwendet die gesetzten Zeichen im Bereich zwischen pbase und den pptr Zeigern und initialisiert dann den gesetzten Bereich.Die overflow-Funktion muss nCh auch verwenden (wenn nCh nicht EOF ist), oder sie beschlösse möglicherweise, um dieses Zeichen in den neuen gesetzten Bereich gespeichert, sodass sie auf dem folgenden Aufruf verwendet wird.

Die Definition von nutzen variiert mit abgeleiteten Klassen.Beispielsweise schreibt die filebuf-Klasse ihre Zeichen zu einer Datei, während die strstreambuf-Klasse diese in dem Puffer enthält und (wenn der Puffer festgelegt, während dynamisch), den Puffer als Reaktion auf einen Aufruf erweitert, um überzulaufen.Diese Erweiterung wird erreicht, indem den alten Puffer freigibt und ihn mit einem neuen, größeren ersetzt.Die Zeiger werden nach Bedarf angepasst.

Anforderungen

Header: <streambuf>

Namespace: std

Siehe auch

Referenz

basic_streambuf Class

Programmierung der iostream-Headerdatei

iostreams Konventionen