Requirements
A FormattedInputFunction
is a stream input function that performs the following:
- Constructs an object of type
basic_istream::sentry
with automatic storage duration and with thenoskipws
argument set tofalse
, which performs the following - if
eofbit
orbadbit
are set on the input stream, sets thefailbit
as well, and if exceptions on failbit are enabled in this input stream's exception mask, throwsios_base::failure
. - flushes the tie()'d output stream, if applicable
- if
ios_base::skipws
flag is set on this input stream, extracts and discards characters from the input stream until one of the following becomes true:- the next available character on the input stream is not a whitespace character, as tested by the
std::ctype
facet of the locale currently imbued in this input stream. The non-whitespace character is not extracted. - the end of the stream is reached, in which case
failbit
andeofbit
are set and if the stream is on for exceptions on one of these bits,ios_base::failure
is thrown.
- the next available character on the input stream is not a whitespace character, as tested by the
- Checks the status of the sentry by calling
sentry::operator bool()
, which is equivalent tobasic_ios::good
. - If the sentry returned
false
or sentry's constructor threw an exception, no input takes place - If the sentry returned
true
, performs the input as if by callingrdbuf()->sbumpc()
orrdbuf()->sgetc()
.- if the end of the stream is reached (the call to
rdbuf()->sbumpc()
orrdbuf()->sgetc()
returnsTraits::eof()
, setseofbit
. If exceptions on eofbit are enabled in this stream's exception mask, throwsios_base::failure
. - if an exception is thrown during input, sets
badbit
in the input stream. If exceptions on badbit are enabled in this stream's exception mask, the exception is also rethrown. - If no exception was thrown, returns
*this
.
- if the end of the stream is reached (the call to
- In any event, whether terminating by exception or returning, the sentry's destructor is called before leaving this function.
Standard library
The following standard library functions are FormattedInputFunction
s.
Please login to continue.