Sdílet prostřednictvím


basic_streambuf::overflow

Chráněné virtuální funkce, která může být volána, když nový znak je vložen do plné 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.Funkce traits_type::not_eof(_Meta).Výchozí chování je vrátit traits_type::eof.

Poznámky

Pokud _Meta nelze použít k porovnání rovná traits_type::eof, endeavors chráněné virtuální členskou funkci Vložit prvek traits_type::to_char_type(_Meta) do výstupního datového proudu.To lze provést různými způsoby:

  • Pokud write position je k dispozici, může uložit prvek na pozici zápis a zvýšit další ukazatele pro výstupní vyrovnávací paměť.

  • Jej zpřístupnit zápis pozice tak, že přidělování nové nebo dodatečné paměti pro vyrovnávací paměti výstupu.

  • Jej zpřístupnit zápis pozice tak, že psaní ven, 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.Každá odvozená třída může implementovat přetečení odlišně, ale rozhraní pomocí volání třídy stream je stejný.

overflow Veřejností je nejčastěji volána funkce streambuf funguje jako sputc a sputn při put oblast je plná, ale můžete volat jiné třídy, včetně tříd datového proudu, overflow kdykoliv.

Funkce využívá v oblasti put mezi znaky pbase a pptr ukazatele a poté k nové inicializaci oblasti put.overflow Musí také využívat funkce nCh (Pokud nCh není EOF), nebo může rozhodnout umístit, aby umístit znak v nové oblasti tak, aby ji spotřebovat na další volání.

Definice spotřebovat liší odvozených tříd.Například filebuf třídy zapíše do souboru, jeho znaky a strstreambuf třída uchovává je ve vyrovnávací paměti a (pokud vyrovnávací paměti je označen jako dynamická) se rozšíří 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í jedné nové, větší.Ukazatele jsou upraveny podle potřeby.

Požadavky

Záhlaví:<streambuf>

Obor názvů: std

Viz také

Referenční dokumentace

basic_streambuf – třída

iostream – programování

iostreams – konvence