Sdílet prostřednictvím


basic_streambuf::overflow

Chráněné virtuální funkce, která může být vyvolána při nový znak je vložen v celé vyrovnávací paměti.

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

Parametry

  • _Meta
    Znak vložit do vyrovnávací paměti, nebo traits_type::eof.

Vrácená hodnota

Pokud funkce nemůže úspěšně, vrátí traits_type::eof nebo vyvolá výjimku.Jinak vrací traits_type::not_eof(_Meta).Výchozí chování je vrátíte traits_type::eof.

Poznámky

Pokud _Meta neporovnává rovno traits_type::eof, endeavors chráněné virtuální členské funkce Vložit prvek traits_type::to_char_type(_Meta) do výstupního proudu.Můžete tak učinit různými způsoby:

  • Pokud write position je k dispozici, může uložení prvku do pozice zápisu a zvýšit další ukazatele pro výstupní vyrovnávací paměť.

  • Jej zpřístupnit zápis pozice přidělením nové nebo dodatečné úložiště pro výstupní vyrovnávací paměť.

  • Jej zpřístupnit zápis pozice tak psaní out, na některých externích cílů, některé nebo všechny prvky mezi počáteční a další ukazatele pro výstupní vyrovnávací paměť.

Funkce virtuální přetečení společně s synchronizace a podtečení funkce, definuje vlastnosti třídy odvozené streambuf.Odvozené třídy implementovat přetečení odlišně, ale rozhraní s volání třídy datového proudu je stejný.

overflow Funkce se nazývá nejčastěji veřejností streambuf funguje jako sputc a sputn při zaplnění put oblasti, ale můžete volat jiných tříd včetně třídy datového proudu overflow kdykoli.

Funkce spotřebovává znaků v oblasti mezi put pbase a pptr ukazatele a poté nové inicializaci put oblasti.overflow Funkce také musí spotřebovat nCh (Pokud nCh není EOF), nebo může být zvolte umístit, vložit znak v nové oblasti tak, že bude v příští volání spotřebovány.

Definice consume liší odvozené třídy.Například filebuf třídy zapíše do souboru jeho znaků, zatímco strstreambuf třídy ponechá je ve vyrovnávací paměti a (Pokud je označen jako dynamickou vyrovnávací paměti) rozšiřuje na výzvy k přetečení vyrovnávací paměti.Toto rozšíření je dosáhnout uvolnění starých vyrovnávací paměti a jeho nahrazení jednu novou, větší.Ukazatelů jsou upraveny podle potřeby.

Požadavky

Záhlaví: <streambuf>

Obor názvů: std

Viz také

Referenční dokumentace

basic_streambuf Class

iostream programování

iostreams konvence