A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://en.cppreference.com/w/cpp/language/../io/basic_streambuf/../basic_filebuf/overflow.html below:

std::basic_filebuf<CharT,Traits>::overflow - cppreference.com

protected:
virtual int_type overflow( int_type ch = Traits::eof() );

Writes some data from the put area to the associated character sequence (to the file).

Behaves like the base class version std::basic_streambuf::overflow(), except that the behavior of “consuming characters” is defined as follows:

1)

First, uses

std::codecvt::out

of the imbued locale to convert the characters into external (possibly multibyte) representation, stored in a temporary buffer, as follows: (

XSIZE

is some unspecified buffer size)

const std::codecvt<CharT, char, typename Traits::state_type>& a_codecvt =
    std::use_facet<std::codecvt<CharT, char, typename Traits::state_type>>(getloc());
typename Traits::state_type state;
CharT* end;
char xbuf[XSIZE];
char* xbuf_end;
std::codecvt_base::result r =
    a_codecvt.out(state, pbase(), pptr(), end, xbuf, xbuf + XSIZE, xbuf_end);
2)

Then writes all fully-converted characters from the buffer into the file. Formally, performs the following steps based on the value of

r

:

r Operation std::codecvt_base::ok Output characters in [xbufxbuf_end) to the file, and fail if output fails. At this point if pbase() != pptr() and pbase() == end are both true (which means xbuf is not large enough for even one external character), then increase XSIZE and repeat from the beginning. std::codecvt_base::partial Output the converted external characters in [xbufxbuf_end) to the file, and repeat using the remaining unconverted internal characters in [endpptr()). If output fails, fail (without repeating). std::codecvt_base::noconv Output characters in [pbase()pptr()) to the file. std::codecvt_base::error Fail.

If the associated file is not open (

is_open()

returns

false

), output will always fail.

[edit] Parameters ch - the character to store in the put area [edit] Return value

Traits::not_eof(ch) to indicate success or Traits::eof() to indicate failure.

[edit] Notes

If a_codecvt.always_noconv() returns true, the call to a_codecvt.out() may be skipped.

[edit] Example [edit] See also writes characters to the associated output sequence from the put area
(virtual protected member function of std::basic_streambuf<CharT,Traits>) [edit] reads from the associated file
(virtual protected member function) [edit]

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4