FreeBSD Manual Pages
std::basic_istream::sentry(3) C++ Standard Libarystd::basic_istream::sentry(3) NAME std::basic_istream::sentry - std::basic_istream::sentry Synopsis class sentry; An object of class basic_istream::sentry is constructed in local scope at the beginning of each member function of std::basic_istream that per- forms input (both formatted and unformatted). Its constructor prepares the input stream: checks if the stream is already in a failed state, flushes the tie()'d output streams, skips leading whitespace unless noskipws flag is set, and performs other implementation-defined tasks if necessary. All cleanup, if neces- sary, is performed in the destructor, so that it is guaranteed to happen if exceptions are thrown during input. Member types traits_type Traits Member functions constructor constructs the sentry object. All the preparation tasks are done here (public member function) finalizes the stream object after formatted input or after exception, destructor if necessary (public member function) operator= not copy assignable [deleted] (public member function) operator bool checks if the preparation of the stream object was successful (public member function) std::basic_istream::sentry::sentry explicit sentry(std::basic_istream<CharT,Traits>& is, bool noskipws = false); Prepares the stream for formatted input. If is.good() is false, calls is.setstate(failbit)(since c++11) and returns. Otherwise, if is.tie() is not a null pointer, calls is.tie()->flush() to synchronize the output sequence with external streams. This call can be sup- pressed if the put area of is.tie() is empty. The implementation may defer the call to flush until a call of is.rdbuf()->underflow() occurs. If no such call occurs be- fore the sentry object is destroyed, it may be eliminated entirely. If noskipws is zero and is.flags() & ios_base::skipws is nonzero, the function extracts and discards all whitespace characters until the next available character is not a whitespace character (as determined by the currently imbued locale in is). If is.rdbuf()->sbumpc() or is.rdbuf()->sgetc() returns traits::eof(), the function calls setstate(failbit | eofbit) (which may throw std::ios_base::failure). Additional implementation-defined preparation may take place, which may call setstate(failbit) (which may throw std::ios_base::failure). If after preparation is completed, is.good() == true, then any sub- sequent calls to operator bool will return true. Parameters is - input stream to prepare noskipws - true if whitespace should not be skipped Exceptions std::ios_base::failure if the end of file condition occurs when skipping whitespace. std::basic_istream::sentry::~sentry ~sentry(); Does nothing. std::basic_istream::sentry::operator bool explicit operator bool() const; Checks whether the preparation of the input stream was successful. Parameters (none) Return value true if the initialization of the input stream was successful, false otherwise. Example // Run this code #include <iostream> #include <sstream> struct Foo { char n[5]; }; std::istream& operator>>(std::istream& is, Foo& f) { std::istream::sentry s(is); if (s) is.read(f.n, 5); return is; } int main() { std::string input = " abcde"; std::istringstream stream(input); Foo f; stream >> f; std::cout.write(f.n, 5); std::cout << '\n'; } Output: abcde See also operator>> extracts formatted data (public member function) operator>>(std::basic_istream) extracts characters and character ar- rays (function template) http://cppreference.com 2022.07.31 std::basic_istream::sentry(3)
NAME | Synopsis | Member types | Member functions | Parameters | Exceptions | Parameters | Return value | Example | Output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::basic_istream::sentry&sektion=3&manpath=FreeBSD+Ports+15.0>
