[istream.formatted.reqmts] (original) (raw)
Each formatted input function begins execution by constructing an object of type ios_base::iostate, termed the local error state, and initializing it to ios_base::goodbit.
It then creates an object of classsentrywith thenoskipws(second) argumentfalse.
If thesentryobject returnstrue, when converted to a value of typebool, the function endeavors to obtain the requested input.
Otherwise, if the sentry constructor exits by throwing an exception or if the sentry object produces falsewhen converted to a value of type bool, the function returns without attempting to obtain any input.
If rdbuf()->sbumpc() or rdbuf()->sgetc()returns traits::eof(), thenios_base::eofbit is set in the local error state and the input function stops trying to obtain the requested input.
If an exception is thrown during input thenios_base::badbit is set in the local error state,*this's error state is set to the local error state, and the exception is rethrown if (exceptions() & badbit) != 0.
After extraction is done, the input function calls setstate, which sets *this's error state to the local error state, and may throw an exception.
In any case, the formatted input function destroys thesentryobject.
If no exception has been thrown, it returns*this.