basic_streambuf::overflow
Chronione funkcji wirtualnych może być wywoływana po wstawieniu nowego znaku do pełnego buforu.
virtual int_type overflow(
int_type _Meta = traits_type::eof( )
);
Parametry
- _Meta
Znak, aby wstawić do bufora, lub traits_type::eof.
Wartość zwracana
Jeśli funkcja nie powiodła się, zwraca traits_type::eof lub zgłasza wyjątek.W przeciwnym wypadku zwraca traits_type::not_eof(_Meta).Domyślne zachowanie polega na powrót traits_type::eof.
Uwagi
Jeśli _Meta nie porównuje równa traits_type::eof, funkcja chroniony członek wirtualnego usiłują wstawienie elementu traits_type::to_char_type(_Meta) do strumienia wyjściowego.To zrobić na różne sposoby:
Jeśli write position jest dostępny, to można przechowywać element do pozycji zapisu i przyrost wartości następnej wskaźnik do buforu wyjściowego.
To można udostępnić pozycję zapisu przez alokacji nowe lub dodatkowe miejsca dla buforu wyjściowego.
Może to zrobić pozycję zapisu dostępne przez pisanie, do niektórych zewnętrznego miejsca docelowego, niektóre lub wszystkie elementy między początkiem i dalej wskaźniki dla buforu wyjściowego.
Funkcja wirtualnego przepełnienia, wraz z sync i niedomiar funkcje, określa właściwości klas pochodnych streambuf.Każda klasa pochodna może inaczej implementować przepełnienia, ale interfejs z wywołanie klasy strumień jest taka sama.
overflow Funkcja nazywa się najczęściej przez społeczeństwa streambuf funkcje, takie jak sputc i sputn kiedy umieścić obszar jest pełna, ale innych klas, łącznie z klasami strumień może wywołać overflow zawsze.
Funkcja zużywa znaków w obszarze umieścić między pbase i pptr wskaźniki i następnie reinitializes obszaru put.overflow Funkcja musi również zużywają nCh (Jeśli nCh nie jest EOF), lub może wybrać umieścić znak w nowym umieścić obszar, tak, że będzie zużywanych na następne połączenie.
Definicja zużywają waha się między klas pochodnych.Na przykład filebuf Klasa zapisuje jej znaków w pliku, podczas gdy strstreambuf klasa utrzymuje je w swoim buforze i rozszerza się (Jeśli bufor jest wyznaczony jako dynamiczny) bufor w odpowiedzi na zaproszenie do przepełnienia.Rozwój ten uzyskuje się przez zwalnianie starych buforów i zastąpienie go jeden nowy, większy.Kursory są dostosowywane w miarę potrzeby.
Wymagania
Nagłówek:<streambuf>
Przestrzeń nazw: std