protected virtual member function
<streambuf> <iostream>

std::streambuf::overflow

int overflow (int c = EOF);
Put character on overflow
Virtual function called by other member functions to put a character into the controlled output sequence without changing the current position.

It is called by public member functions such as sputc to write a character when there are no writing positions available at the put pointer (pptr).

Its default behavior in streambuf is to always return EOF (indicating failure), but derived classes can override this behavior to attempt to write the character directly and/or to alter pptr and other internal pointers so that more storage is provided, potentially writing unwritten characters to the controlled output sequence. Both filebuf and stringbuf override this virtual member function.

Parameters

c
Character to be put.
If this is the end-of-file value (EOF), no character is put, but the other effects of calling this function are attempted.

Return Value

In case of success, the character put is returned, converted to a value of type int_type using member traits_type::to_int_type.
Otherwise, it returns the end-of-file value (EOF) either if called with this value as argument c or to signal a failure (some implementations may throw an exception instead).

Data races

Modifies the stream buffer object.
Concurrent access to the same stream buffer object may introduce data races.

Exception safety

Basic guarantee: if an exception is thrown, the stream buffer is in a valid state.

See also